@@ -865,7 +865,7 @@ PHPAPI uint32_t php_mt_rand(void)
865
865
/* {{{ php_mt_rand_range */
866
866
PHPAPI zend_long php_mt_rand_range (zend_long min , zend_long max )
867
867
{
868
- return php_random_engine_range (
868
+ return ( zend_long ) php_random_engine_range (
869
869
php_random_engine_get_default_algo (),
870
870
php_random_engine_get_default_state (),
871
871
min ,
@@ -1077,18 +1077,16 @@ PHPAPI void *php_random_engine_get_default_state(void)
1077
1077
/* }}} */
1078
1078
1079
1079
/* {{{ php_random_engine_range */
1080
- PHPAPI zend_long php_random_engine_range (const php_random_engine_algo * algo , void * state , zend_long min , zend_long max , bool * engine_unsafe )
1080
+ PHPAPI int64_t php_random_engine_range (const php_random_engine_algo * algo , void * state , zend_long min , zend_long max , bool * engine_unsafe )
1081
1081
{
1082
1082
zend_ulong umax = max - min ;
1083
1083
1084
- #if ZEND_ULONG_MAX > UINT32_MAX
1085
- /* user-land OR 64-bit RNG OR umax over 32-bit */
1086
- if (algo -> static_generate_size == 0 || algo -> static_generate_size > sizeof (uint32_t ) || umax > UINT32_MAX ) {
1087
- return (zend_long ) rand_range64 (algo , state , umax , engine_unsafe ) + min ;
1084
+ /* (user-defined AND 64-bit ENV) OR 64-bit RNG OR umax over 32-bit range */
1085
+ if ((algo -> static_generate_size == 0 && sizeof (zend_long ) > sizeof (uint32_t )) || algo -> static_generate_size > sizeof (uint32_t ) || umax > UINT32_MAX ) {
1086
+ return rand_range64 (algo , state , umax , engine_unsafe ) + min ;
1088
1087
}
1089
- #endif
1090
1088
1091
- return (zend_long ) ( rand_range32 (algo , state , umax , engine_unsafe ) + min ) ;
1089
+ return (( int64_t ) rand_range32 (algo , state , umax , engine_unsafe )) + min ;
1092
1090
}
1093
1091
/* }}} */
1094
1092
@@ -1582,7 +1580,7 @@ PHP_METHOD(Random_Randomizer, getInt)
1582
1580
RETURN_THROWS ();
1583
1581
}
1584
1582
1585
- result = php_random_engine_range (randomizer -> algo , randomizer -> state , min , max , & engine_unsafe );
1583
+ result = ( zend_long ) php_random_engine_range (randomizer -> algo , randomizer -> state , min , max , & engine_unsafe );
1586
1584
if (engine_unsafe ) {
1587
1585
zend_throw_exception (spl_ce_RuntimeException , "Random number generate failed" , 0 );
1588
1586
RETURN_THROWS ();
0 commit comments