diff options
author | Xinchen Hui <laruence@php.net> | 2012-02-03 16:27:35 +0000 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-02-03 16:27:35 +0000 |
commit | 30f63e4152f19bf2a7ab44d01cfa539ea0ec4b20 (patch) | |
tree | 88efa55e3458ecc1cb610b984076c78228509899 | |
parent | 8e82bda330264d290a5e55580eea2eb875d4cb69 (diff) | |
download | php-git-30f63e4152f19bf2a7ab44d01cfa539ea0ec4b20.tar.gz |
Fixed bug #60968 (Late static binding doesn't work with ReflectionMethod::invokeArgs())
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/reflection/php_reflection.c | 2 | ||||
-rw-r--r-- | ext/reflection/tests/bug60367.phpt | 4 |
3 files changed, 8 insertions, 2 deletions
@@ -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 |