summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2015-04-25 18:47:26 +0200
committerNikita Popov <nikic@php.net>2015-04-25 18:47:26 +0200
commit75b4fa079f1c13188895bfbe47dc561e17c59382 (patch)
treee641fb6f860cb7f9f317408d11e7a6789ca37d47
parente0a39eecf1d176162783af37c8d2f687c6815059 (diff)
downloadphp-git-75b4fa079f1c13188895bfbe47dc561e17c59382.tar.gz
Fix bug #69532
Partial revert of ea2fc7f935d2767c127756647f47be8d420346ce.
-rw-r--r--Zend/tests/bug69532.phpt17
-rw-r--r--Zend/zend_compile.c3
2 files changed, 19 insertions, 1 deletions
diff --git a/Zend/tests/bug69532.phpt b/Zend/tests/bug69532.phpt
new file mode 100644
index 0000000000..69af53c8fe
--- /dev/null
+++ b/Zend/tests/bug69532.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #69532: array_multisort is chocking when using it's own constants
+--FILE--
+<?php
+
+namespace Foo;
+
+$origins = array();
+$profiles = array();
+$all_files = array();
+
+array_multisort($origins, SORT_ASC, $profiles, SORT_ASC, $all_files);
+
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 3b3eb7573f..65677f7d47 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4123,8 +4123,9 @@ ZEND_API void zend_set_function_arg_flags(zend_function *func) /* {{{ */
i++;
}
if (UNEXPECTED(func->common.fn_flags & ZEND_ACC_VARIADIC && func->common.arg_info[i].pass_by_reference)) {
+ uint32_t pass_by_reference = func->common.arg_info[i].pass_by_reference;
while (i < MAX_ARG_FLAG_NUM) {
- ZEND_SET_ARG_FLAG(func, i + 1, 1);
+ ZEND_SET_ARG_FLAG(func, i + 1, pass_by_reference);
i++;
}
}