summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Fitch <willfitch@php.net>2014-01-18 11:25:53 -0500
committerWill Fitch <willfitch@php.net>2014-01-18 11:25:53 -0500
commit5b906ce6eb02118697c2f81d462ddfa724377fe8 (patch)
tree03fde23cacd7c978c4a888184c57fc6245f848dd
parenta218a8b9174e5daf8b34c4cb3eca23977e7f66cf (diff)
downloadphp-git-5b906ce6eb02118697c2f81d462ddfa724377fe8.tar.gz
Fix bug #66509: copy() arginfo incorrect since 5.4
Since 5.4, the ZEND_BEGIN_ARG_INFO_EX was replaced by non _EX, causing Reflection to assume the $context parameter is required.
-rw-r--r--NEWS1
-rw-r--r--ext/standard/basic_functions.c2
-rw-r--r--ext/standard/tests/file/bug66509.phpt15
3 files changed, 17 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 81f88bf07f..00a0a940ad 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ PHP NEWS
- Core:
. Fixed bug #66286 (Incorrect object comparison with inheritance). (Nikita)
+ . Fixed bug #66509 (copy() arginfo has changed starting from 5.4). (willfitch)
- Session:
. Fixed bug #66481 (Calls to session_name() segfault when session.name is
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 5f880d74dd..c01365589e 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -1206,7 +1206,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_fstat, 0)
ZEND_ARG_INFO(0, fp)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO(arginfo_copy, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_copy, 0, 0, 2)
ZEND_ARG_INFO(0, source_file)
ZEND_ARG_INFO(0, destination_file)
ZEND_ARG_INFO(0, context)
diff --git a/ext/standard/tests/file/bug66509.phpt b/ext/standard/tests/file/bug66509.phpt
new file mode 100644
index 0000000000..0e414f2321
--- /dev/null
+++ b/ext/standard/tests/file/bug66509.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #66509 (copy() showing $context parameter as required)
+--FILE--
+<?php
+
+$r = new \ReflectionFunction('copy');
+
+foreach($r->getParameters() as $p) {
+ var_dump($p->isOptional());
+}
+?>
+--EXPECT--
+bool(false)
+bool(false)
+bool(true)