diff options
-rw-r--r-- | ext/standard/basic_functions.c | 6 | ||||
-rw-r--r-- | ext/standard/mt_rand.c | 30 | ||||
-rw-r--r-- | ext/standard/php_math.h | 1 | ||||
-rw-r--r-- | ext/standard/tests/math/mt_rand_value.phpt | 6 | ||||
-rw-r--r-- | ext/standard/tests/math/mt_srand_error.phpt | 4 | ||||
-rw-r--r-- | ext/standard/tests/math/srand_error.phpt | 4 |
6 files changed, 17 insertions, 34 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 4c1321b674..a3ea512aea 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1886,6 +1886,7 @@ ZEND_END_ARG_INFO() /* {{{ mt_rand.c */ ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_srand, 0, 0, 0) ZEND_ARG_INFO(0, seed) + ZEND_ARG_INFO(0, mode) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0) @@ -1895,10 +1896,6 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO(arginfo_mt_getrandmax, 0) ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand_mode, 0, 0, 1) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() /* }}} */ /* {{{ random.c */ ZEND_BEGIN_ARG_INFO_EX(arginfo_random_bytes, 0, 0, 0) @@ -2858,7 +2855,6 @@ const zend_function_entry basic_functions[] = { /* {{{ */ PHP_FE(mt_rand, arginfo_mt_rand) PHP_FE(mt_srand, arginfo_mt_srand) PHP_FE(mt_getrandmax, arginfo_mt_getrandmax) - PHP_FE(mt_rand_mode, arginfo_mt_rand_mode) PHP_FE(random_bytes, arginfo_random_bytes) PHP_FE(random_int, arginfo_random_int) diff --git a/ext/standard/mt_rand.c b/ext/standard/mt_rand.c index 04f4f8ea0c..fa7c004b65 100644 --- a/ext/standard/mt_rand.c +++ b/ext/standard/mt_rand.c @@ -189,13 +189,22 @@ PHPAPI uint32_t php_mt_rand(void) PHP_FUNCTION(mt_srand) { zend_long seed = 0; + zend_long mode = MT_RAND_MT19937; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &seed) == FAILURE) + if (zend_parse_parameters(ZEND_NUM_ARGS(), "|ll", &seed, &mode) == FAILURE) return; if (ZEND_NUM_ARGS() == 0) seed = GENERATE_SEED(); + switch (mode) { + case MT_RAND_PHP: + BG(mt_rand_mode) = MT_RAND_PHP; + break; + default: + BG(mt_rand_mode) = MT_RAND_MT19937; + } + php_mt_srand(seed); } /* }}} */ @@ -283,25 +292,6 @@ PHP_FUNCTION(mt_getrandmax) } /* }}} */ -/* {{{ proto int mt_rand_mode(int) - Switch mt_rand between standard and legacy modes */ -PHP_FUNCTION(mt_rand_mode) -{ - zend_long mode; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &mode) == FAILURE) { - return; - } - - switch (mode) { - case MT_RAND_PHP: - BG(mt_rand_mode) = MT_RAND_PHP; - break; - default: - BG(mt_rand_mode) = MT_RAND_MT19937; - } -} -/* }}} */ PHP_MINIT_FUNCTION(mt_rand) { REGISTER_LONG_CONSTANT("MT_RAND_MT19937", MT_RAND_MT19937, CONST_CS | CONST_PERSISTENT); diff --git a/ext/standard/php_math.h b/ext/standard/php_math.h index 91cd3e498e..406fd49dcd 100644 --- a/ext/standard/php_math.h +++ b/ext/standard/php_math.h @@ -51,7 +51,6 @@ PHP_FUNCTION(getrandmax); PHP_FUNCTION(mt_srand); PHP_FUNCTION(mt_rand); PHP_FUNCTION(mt_getrandmax); -PHP_FUNCTION(mt_rand_mode); PHP_FUNCTION(abs); PHP_FUNCTION(ceil); PHP_FUNCTION(floor); diff --git a/ext/standard/tests/math/mt_rand_value.phpt b/ext/standard/tests/math/mt_rand_value.phpt index c71b61e9b0..cf7b9f00b6 100644 --- a/ext/standard/tests/math/mt_rand_value.phpt +++ b/ext/standard/tests/math/mt_rand_value.phpt @@ -3,8 +3,7 @@ Test mt_rand() output --FILE-- <?php -mt_rand_mode(MT_RAND_PHP); -mt_srand(12345678); +mt_srand(12345678, MT_RAND_PHP); for ($i=0; $i<16; $i++) { echo mt_rand().PHP_EOL; @@ -18,8 +17,7 @@ for ($i=0; $i<1024; $i++) { echo $x.PHP_EOL; echo PHP_EOL; -mt_rand_mode(MT_RAND_MT19937); -mt_srand(12345678); +mt_srand(12345678 /*, MT_RAND_MT19937 */); for ($i=0; $i<16; $i++) { echo mt_rand().PHP_EOL; diff --git a/ext/standard/tests/math/mt_srand_error.phpt b/ext/standard/tests/math/mt_srand_error.phpt index 537727c9bb..aa2fc75b74 100644 --- a/ext/standard/tests/math/mt_srand_error.phpt +++ b/ext/standard/tests/math/mt_srand_error.phpt @@ -2,12 +2,12 @@ Test mt_srand() - wrong params test mt_srand() --FILE-- <?php -var_dump(mt_srand(500, true)); +var_dump(mt_srand(500, 0, true)); var_dump(mt_srand("fivehundred")); var_dump(mt_srand("500ABC")); ?> --EXPECTF-- -Warning: mt_srand() expects at most 1 parameter, 2 given in %s on line 2 +Warning: mt_srand() expects at most 2 parameters, 3 given in %s on line 2 NULL Warning: mt_srand() expects parameter 1 to be integer, string given in %s on line 3 diff --git a/ext/standard/tests/math/srand_error.phpt b/ext/standard/tests/math/srand_error.phpt index 6985af515a..ca9e4b939c 100644 --- a/ext/standard/tests/math/srand_error.phpt +++ b/ext/standard/tests/math/srand_error.phpt @@ -13,7 +13,7 @@ Test srand() function : error conditions - incorrect number of args echo "*** Testing srand() : error conditions ***\n"; -var_dump(srand(500, true)); +var_dump(srand(500, 0, true)); var_dump(srand("fivehundred")); var_dump(srand("500ABC")); ?> @@ -21,7 +21,7 @@ var_dump(srand("500ABC")); --EXPECTF-- *** Testing srand() : error conditions *** -Warning: srand() expects at most 1 parameter, 2 given in %s on line %d +Warning: srand() expects at most 2 parameters, 3 given in %s on line %d NULL Warning: srand() expects parameter 1 to be integer, string given in %s on line %d |