Skip to content

Commit 3d4cb1d

Browse files
authored
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
1 parent 06569bb commit 3d4cb1d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

ext/random/php_random.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,19 @@
3737

3838
PHPAPI double php_combined_lcg(void);
3939

40+
static inline zend_long GENERATE_SEED(void)
41+
{
42+
zend_ulong pid;
43+
4044
# ifdef PHP_WIN32
41-
# define GENERATE_SEED() (((zend_long) ((zend_ulong) time(NULL) * (zend_ulong) GetCurrentProcessId())) ^ ((zend_long) (1000000.0 * php_combined_lcg())))
45+
pid = (zend_ulong) GetCurrentProcessId();
4246
# else
43-
# define GENERATE_SEED() (((zend_long) ((zend_ulong) time(NULL) * (zend_ulong) getpid())) ^ ((zend_long) (1000000.0 * php_combined_lcg())))
47+
pid = (zend_ulong) getpid();
4448
# endif
4549

50+
return (((zend_long) ((zend_ulong) time(NULL) * pid)) ^ ((zend_long) (1000000.0 * php_combined_lcg())));
51+
}
52+
4653
# define PHP_MT_RAND_MAX ((zend_long) (0x7FFFFFFF)) /* (1<<31) - 1 */
4754

4855
enum php_random_mt19937_mode {

0 commit comments

Comments
 (0)