From 3d4cb1da3e5418f0d50eac4a2e162d19d125e55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Mon, 4 Mar 2024 19:51:17 +0100 Subject: [PATCH] random: Convert `RANDOM_SEED()` from a macro to a function (#13575) * random: Convert `RANDOM_SEED()` from a macro to a function * random: Fix GENERATE_SEED()'s prototype --- 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 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 {