From 76ace254e171ee9ca7a13f36335ccad9cc6ae6e1 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 12 Oct 2009 15:25:01 +0200 Subject: 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 --- shell/random.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'shell/random.h') 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 { uint32_t LCG; /* LCG (fast but weak) */ } random_t; +#define UNINITED_RANDOM_T(rnd) \ + ((rnd)->galois_LFSR == 0) + #define INIT_RANDOM_T(rnd, nonzero, v) \ ((rnd)->galois_LFSR = (nonzero), (rnd)->LCG = (v)) +#define CLEAR_RANDOM_T(rnd) \ + ((rnd)->galois_LFSR = 0) + uint32_t next_random(random_t *rnd) FAST_FUNC; -- cgit v1.2.3