com php-src: Restored original EG(scope) behavior when call object methods: Zend/zend_vm_def.h Zend/zend_vm_execute.h
Commit: 28a81353313e251e32658cc455cf30913bbc2bd8
Author: Dmitry Stogov <dmitry@zend.com> Tue, 6 May 2014 02:04:05 +0400
Parents: 1606a9a36a40423008615e2fe1c8a465e8c99747
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=28a81353313e251e32658cc455cf30913bbc2bd8
Log:
Restored original EG(scope) behavior when call object methods
Changed paths:
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
Diff:
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 2538e86..c0d88ea 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1938,8 +1938,13 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
if (fbc->common.scope) {
should_change_scope = 1;
Z_OBJ(EG(This)) = object;
-//??? EG(scope) = (object) ? NULL : fbc->common.scope;
+ /* TODO: we don't set scope if we call an object method ??? */
+ /* See: ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt */
+#if 1
+ EG(scope) = (object) ? NULL : fbc->common.scope;
+#else
EG(scope) = fbc->common.scope;
+#endif
EG(called_scope) = EX(call)->called_scope;
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 6abc07d..da7c59a 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -548,8 +548,13 @@ static int ZEND_FASTCALL
zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
if (fbc->common.scope) {
should_change_scope = 1;
Z_OBJ(EG(This)) = object;
-//??? EG(scope) = (object) ? NULL : fbc->common.scope;
+ /* TODO: we don't set scope if we call an object method ??? */
+ /* See: ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt */
+#if 1
+ EG(scope) = (object) ? NULL : fbc->common.scope;
+#else
EG(scope) = fbc->common.scope;
+#endif
EG(called_scope) = EX(call)->called_scope;
}
Thread (1 message)
- Dmitry Stogov