From 86e8039a72646cd9192fd08a6f1771c90b872ff6 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 23 Mar 2023 16:01:16 -0300 Subject: Clock component removed from 'luaL_makeseed' 'clock' can be quite slow on some machines. --- lauxlib.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'lauxlib.c') diff --git a/lauxlib.c b/lauxlib.c index 64b325d3..555a5976 100644 --- a/lauxlib.c +++ b/lauxlib.c @@ -1094,8 +1094,8 @@ static void warnfon (void *ud, const char *message, int tocont) { /* ** A function to compute an unsigned int with some level of -** randomness. Rely on Address Space Layout Randomization (if present), -** current time, and clock. +** randomness. Rely on Address Space Layout Randomization (if present) +** and the current time. */ #if !defined(luai_makeseed) @@ -1115,18 +1115,16 @@ static void warnfon (void *ud, const char *message, int tocont) { static unsigned int luai_makeseed (void) { - unsigned int buff[sof(void*) + sof(clock_t) + sof(time_t)]; + unsigned int buff[sof(void*) + sof(time_t)]; unsigned int res; unsigned int *b = buff; - clock_t c = clock(); time_t t = time(NULL); void *h = buff; addbuff(b, h); /* local variable's address */ - addbuff(b, c); /* clock */ addbuff(b, t); /* time */ res = buff[0]; for (b = buff + 1; b < buff + sof(buff); b++) - res += *b; + res ^= (res >> 3) + (res << 7) + *b; return res; } -- cgit v1.2.3-55-g6feb