From c11de4bd49f0ec0f08a54bd075ff4f93a122af02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Sat, 2 Mar 2024 19:03:43 +0100 Subject: [PATCH 1/2] random: Convert `RANDOM_SEED()` from a macro to a function --- ext/random/php_random.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ext/random/php_random.h b/ext/random/php_random.h index c62761029ddcf..eb13f94c00f4a 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() +{ + 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 */ # define MT_RAND_MT19937 0 From e429d2218990489d8ade7bcbf687957ef61d6483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Sat, 2 Mar 2024 20:04:54 +0100 Subject: [PATCH 2/2] random: Fix GENERATE_SEED()'s prototype --- ext/random/php_random.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/random/php_random.h b/ext/random/php_random.h index eb13f94c00f4a..75991b7003c36 100644 --- a/ext/random/php_random.h +++ b/ext/random/php_random.h @@ -37,7 +37,7 @@ PHPAPI double php_combined_lcg(void); -static inline zend_long GENERATE_SEED() +static inline zend_long GENERATE_SEED(void) { zend_ulong pid;