diff --git a/ext/random/php_random.h b/ext/random/php_random.h index 08c1eb70cab..5a8df6bee2b 100644 --- a/ext/random/php_random.h +++ b/ext/random/php_random.h @@ -37,12 +37,19 @@ PHPAPI double php_combined_lcg(void); +static inline zend_long GENERATE_SEED(void) +{ + zend_ulong pid; + # ifdef PHP_WIN32 -# define GENERATE_SEED() (((zend_long) ((zend_ulong) time(NULL) * (zend_ulong) GetCurrentProcessId())) ^ ((zend_long) (1000000.0 * php_combined_lcg()))) + pid = (zend_ulong) GetCurrentProcessId(); # else -# define GENERATE_SEED() (((zend_long) ((zend_ulong) time(NULL) * (zend_ulong) getpid())) ^ ((zend_long) (1000000.0 * php_combined_lcg()))) + pid = (zend_ulong) getpid(); # endif + return (((zend_long) ((zend_ulong) time(NULL) * pid)) ^ ((zend_long) (1000000.0 * php_combined_lcg()))); +} + # define PHP_MT_RAND_MAX ((zend_long) (0x7FFFFFFF)) /* (1<<31) - 1 */ enum php_random_mt19937_mode {