summaryrefslogtreecommitdiff
path: root/ext/standard/php_rand.h
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2008-03-07 03:36:58 +0000
committerStanislav Malyshev <stas@php.net>2008-03-07 03:36:58 +0000
commit507a7840ed988ca2c7b05c39d2fa7f292a099dbe (patch)
tree50b69aae7e12b18b5dce0b3cbb4190858be334e9 /ext/standard/php_rand.h
parentbbf53bbb04125de735bb68204737f0dde34ab68e (diff)
downloadphp-git-507a7840ed988ca2c7b05c39d2fa7f292a099dbe.tar.gz
improve seed calculation
# better solution would be to port mt's multi-value seed procedure
Diffstat (limited to 'ext/standard/php_rand.h')
-rw-r--r--ext/standard/php_rand.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/standard/php_rand.h b/ext/standard/php_rand.h
index 50fddcdf26..804a14b2aa 100644
--- a/ext/standard/php_rand.h
+++ b/ext/standard/php_rand.h
@@ -47,9 +47,9 @@
#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)))
+#define GENERATE_SEED() (((long) (time(0) * GetCurrentProcessId())) ^ ((long) (1000000.0 * php_combined_lcg(TSRMLS_C))))
#else
-#define GENERATE_SEED() ((long) (time(0) * getpid() * 1000000 * php_combined_lcg(TSRMLS_C)))
+#define GENERATE_SEED() (((long) (time(0) * getpid())) ^ ((long) (1000000.0 * php_combined_lcg(TSRMLS_C)))))
#endif
PHPAPI void php_srand(long seed TSRMLS_DC);