From 28a81353313e251e32658cc455cf30913bbc2bd8 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 6 May 2014 02:04:05 +0400 Subject: [PATCH] Restored original EG(scope) behavior when call object methods --- Zend/zend_vm_def.h | 7 ++++++- Zend/zend_vm_execute.h | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 2538e86cd8..c0d88eaa66 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 6abc07d4e5..da7c59a56e 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; } -- 2.40.0