From fe96e8e64ca1e3b9045a8d2af21ed91448c31594 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 24 Nov 2011 09:16:11 +0000 Subject: [PATCH] Fixed bug #60367 (Reflection and Late Static Binding) --- NEWS | 3 +++ ext/reflection/php_reflection.c | 2 +- ext/reflection/tests/bug60367.phpt | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 ext/reflection/tests/bug60367.phpt diff --git a/NEWS b/NEWS index 5999d3c968..329ffe3194 100644 --- a/NEWS +++ b/NEWS @@ -75,6 +75,9 @@ PHP NEWS . Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference). (Maksymilian Arciemowicz, Felipe) +- Reflection: + . Fixed bug #60367 (Reflection and Late Static Binding). (Laruence) + 03 Nov 2011, PHP 5.3.9RC1 - Core: diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index caeabb6d6e..580e0a6410 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2635,7 +2635,7 @@ ZEND_METHOD(reflection_method, invoke) 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_ptr; result = zend_call_function(&fci, &fcc TSRMLS_CC); diff --git a/ext/reflection/tests/bug60367.phpt b/ext/reflection/tests/bug60367.phpt new file mode 100644 index 0000000000..31e8a2e947 --- /dev/null +++ b/ext/reflection/tests/bug60367.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #60367 (Reflection and Late Static Binding) +--FILE-- +invoke(null); +$method = new ReflectionMethod("A::call"); +$method->invoke(null); +--EXPECTF-- +BA -- 2.40.0