PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Aug 2003, Version 4.3.3RC4
+- Fixed bug #25007 (rand() & mt_rand() seed RNG every call). (Jani)
- Fixed bug #24989 (external libexpat conflicts with bundled libexpat). (Jani)
- Fixed bug #24980 (array_reduce() uses first element as default running
total). (Ilia)
/* MT Rand */
#define PHP_MT_RAND_MAX ((long) (0x7FFFFFFF)) /* (1<<31) - 1 */
+#ifdef PHP_WIN32
+#define GENERATE_SEED() ((long) (time(0) * GetCurrentProcessId() * 1000000 * php_combined_lcg(TSRMLS_C)))
+#else
+#define GENERATE_SEED() ((long) (time(0) * getpid() * 1000000 * php_combined_lcg(TSRMLS_C)))
+#endif
+
PHPAPI void php_srand(long seed TSRMLS_DC);
PHPAPI long php_rand(TSRMLS_D);
PHPAPI void php_mt_srand(php_uint32 seed TSRMLS_DC);
srand((unsigned int) seed);
# endif
#endif
+
+ /* Seed only once */
+ BG(rand_is_seeded) = 1;
}
/* }}} */
for (BG(left) = 0, *s++ = x, j = N; --j;
*s++ = (x *= 69069U) & 0xFFFFFFFFU);
+
+ /* Seed only once */
+ BG(mt_rand_is_seeded) = 1;
}
/* }}} */
}
/* }}} */
-#ifdef PHP_WIN32
-#define GENERATE_SEED() ((long) (time(0) * GetCurrentProcessId() * 1000000 * php_combined_lcg(TSRMLS_C)))
-#else
-#define GENERATE_SEED() ((long) (time(0) * getpid() * 1000000 * php_combined_lcg(TSRMLS_C)))
-#endif
-
/* {{{ proto void srand([int seed])
Seeds random number generator */
PHP_FUNCTION(srand)
seed = GENERATE_SEED();
php_srand(seed TSRMLS_CC);
- BG(rand_is_seeded) = 1;
}
/* }}} */
seed = GENERATE_SEED();
php_mt_srand(seed TSRMLS_CC);
- BG(mt_rand_is_seeded) = 1;
}
/* }}} */