diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-12 15:25:01 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-12 15:25:01 +0200 |
commit | 76ace254e171ee9ca7a13f36335ccad9cc6ae6e1 (patch) | |
tree | 47b017524b61e217e1dce1a82f3111b97a49425f /shell/random.h | |
parent | 3c39e702d02600e9023f2f87f6e7c2c62aa27587 (diff) | |
download | busybox-w32-76ace254e171ee9ca7a13f36335ccad9cc6ae6e1.tar.gz busybox-w32-76ace254e171ee9ca7a13f36335ccad9cc6ae6e1.tar.bz2 busybox-w32-76ace254e171ee9ca7a13f36335ccad9cc6ae6e1.zip |
ash,hush: fix $RANDOM in children being repeated
function old new delta
next_random 46 68 +22
forkshell 248 263 +15
expand_vars_to_list 2118 2131 +13
run_pipe 1775 1782 +7
popstring 134 140 +6
builtin_umask 123 121 -2
ash_main 1356 1336 -20
get_local_var_value 125 104 -21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/3 up/down: 63/-43) Total: 20 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/random.h')
-rw-r--r-- | shell/random.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/shell/random.h b/shell/random.h index 8667e1c99..e22a2e88b 100644 --- a/shell/random.h +++ b/shell/random.h | |||
@@ -13,7 +13,13 @@ typedef struct random_t { | |||
13 | uint32_t LCG; /* LCG (fast but weak) */ | 13 | uint32_t LCG; /* LCG (fast but weak) */ |
14 | } random_t; | 14 | } random_t; |
15 | 15 | ||
16 | #define UNINITED_RANDOM_T(rnd) \ | ||
17 | ((rnd)->galois_LFSR == 0) | ||
18 | |||
16 | #define INIT_RANDOM_T(rnd, nonzero, v) \ | 19 | #define INIT_RANDOM_T(rnd, nonzero, v) \ |
17 | ((rnd)->galois_LFSR = (nonzero), (rnd)->LCG = (v)) | 20 | ((rnd)->galois_LFSR = (nonzero), (rnd)->LCG = (v)) |
18 | 21 | ||
22 | #define CLEAR_RANDOM_T(rnd) \ | ||
23 | ((rnd)->galois_LFSR = 0) | ||
24 | |||
19 | uint32_t next_random(random_t *rnd) FAST_FUNC; | 25 | uint32_t next_random(random_t *rnd) FAST_FUNC; |