diff options
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r-- | Zend/zend_execute_API.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index d9e0d0a8aa..e1001062e5 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -890,6 +890,7 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, zend_string * zend_string *lc_name; zend_fcall_info fcall_info; zend_fcall_info_cache fcall_cache; + zend_class_entry *orig_fake_scope; if (key) { lc_name = key; @@ -986,11 +987,14 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, zend_string * fcall_cache.called_scope = NULL; fcall_cache.object = NULL; + orig_fake_scope = EG(fake_scope); + EG(fake_scope) = NULL; zend_exception_save(); if ((zend_call_function(&fcall_info, &fcall_cache) == SUCCESS) && !EG(exception)) { ce = zend_hash_find_ptr(EG(class_table), lc_name); } zend_exception_restore(); + EG(fake_scope) = orig_fake_scope; zval_ptr_dtor(&args[0]); zval_ptr_dtor_str(&fcall_info.function_name); |