summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2012-02-03 16:27:35 +0000
committerXinchen Hui <laruence@php.net>2012-02-03 16:27:35 +0000
commit30f63e4152f19bf2a7ab44d01cfa539ea0ec4b20 (patch)
tree88efa55e3458ecc1cb610b984076c78228509899
parent8e82bda330264d290a5e55580eea2eb875d4cb69 (diff)
downloadphp-git-30f63e4152f19bf2a7ab44d01cfa539ea0ec4b20.tar.gz
Fixed bug #60968 (Late static binding doesn't work with ReflectionMethod::invokeArgs())
-rw-r--r--NEWS4
-rw-r--r--ext/reflection/php_reflection.c2
-rw-r--r--ext/reflection/tests/bug60367.phpt4
3 files changed, 8 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index d3feda4734..4d3a035512 100644
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,10 @@ PHP NEWS
- SOAP:
. Fixed basic HTTP authentication for WSDL sub requests. (Dmitry)
+- Reflection:
+ . Fixed bug #60968 (Late static binding doesn't work with
+ ReflectionMethod::invokeArgs()). (Laruence)
+
?? ??? 2012, PHP 5.3.10
(to be added)
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index bd0235fb47..06f806f289 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -2744,7 +2744,7 @@ ZEND_METHOD(reflection_method, invokeArgs)
fcc.initialized = 1;
fcc.function_handler = mptr;
fcc.calling_scope = obj_ce;
- fcc.called_scope = obj_ce;
+ fcc.called_scope = intern->ce;
fcc.object_ptr = object;
result = zend_call_function(&fci, &fcc TSRMLS_CC);
diff --git a/ext/reflection/tests/bug60367.phpt b/ext/reflection/tests/bug60367.phpt
index 31e8a2e947..5c4a098979 100644
--- a/ext/reflection/tests/bug60367.phpt
+++ b/ext/reflection/tests/bug60367.phpt
@@ -20,7 +20,9 @@ class B extends A {
$method = new ReflectionMethod("b::call");
$method->invoke(null);
+$method->invokeArgs(null, array());
$method = new ReflectionMethod("A::call");
$method->invoke(null);
+$method->invokeArgs(null, array());
--EXPECTF--
-BA
+BBAA