summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/basic_functions.c6
-rw-r--r--ext/standard/mt_rand.c30
-rw-r--r--ext/standard/php_math.h1
-rw-r--r--ext/standard/tests/math/mt_rand_value.phpt6
-rw-r--r--ext/standard/tests/math/mt_srand_error.phpt4
-rw-r--r--ext/standard/tests/math/srand_error.phpt4
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