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
This commit is contained in:
Tim Düsterhus 2024-03-04 19:51:17 +01:00 committed by GitHub
parent 06569bbd04
commit 3d4cb1da3e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -37,12 +37,19 @@
PHPAPI double php_combined_lcg(void); PHPAPI double php_combined_lcg(void);
static inline zend_long GENERATE_SEED(void)
{
zend_ulong pid;
# ifdef PHP_WIN32 # 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 # 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 # 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 PHP_MT_RAND_MAX ((zend_long) (0x7FFFFFFF)) /* (1<<31) - 1 */
enum php_random_mt19937_mode { enum php_random_mt19937_mode {