]> granicus.if.org Git - php/commitdiff
Fix bug #66509: copy() arginfo incorrect since 5.4
authorWill Fitch <willfitch@php.net>
Sat, 18 Jan 2014 16:25:53 +0000 (11:25 -0500)
committerWill Fitch <willfitch@php.net>
Sat, 18 Jan 2014 16:25:53 +0000 (11:25 -0500)
Since 5.4, the ZEND_BEGIN_ARG_INFO_EX was replaced
by non _EX, causing Reflection to assume the
$context parameter is required.

NEWS
ext/standard/basic_functions.c
ext/standard/tests/file/bug66509.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 81f88bf07fca970bd9b4e774eb90c37a5a25baff..00a0a940adf851d207b09eaba23635c29324cdb4 100644 (file)
--- 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
index 5f880d74ddc7a154b978b8f34d7b9df2ec032fa3..c01365589e578a92f2eb6bb9b12abe55567ad9c6 100644 (file)
@@ -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 (file)
index 0000000..0e414f2
--- /dev/null
@@ -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)