diff options
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 261170c41e..fba570513c 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2590,6 +2590,11 @@ get_function_via_handler: if (fcc->function_handler) { retval = 1; call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0; + if (call_via_handler && !fcc->object_ptr && EG(This) && + Z_OBJ_HT_P(EG(This))->get_class_entry && + instanceof_function(Z_OBJCE_P(EG(This)), fcc->calling_scope TSRMLS_CC)) { + fcc->object_ptr = EG(This); + } } } } |