From 5b906ce6eb02118697c2f81d462ddfa724377fe8 Mon Sep 17 00:00:00 2001 From: Will Fitch Date: Sat, 18 Jan 2014 11:25:53 -0500 Subject: 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. --- NEWS | 1 + ext/standard/basic_functions.c | 2 +- ext/standard/tests/file/bug66509.phpt | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/file/bug66509.phpt 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-- +getParameters() as $p) { + var_dump($p->isOptional()); +} +?> +--EXPECT-- +bool(false) +bool(false) +bool(true) -- cgit v1.2.1