]> granicus.if.org Git - php/commitdiff
handle dummy frame
authorJoe Watkins <krakjoe@php.net>
Mon, 11 Apr 2016 12:24:37 +0000 (13:24 +0100)
committerJoe Watkins <krakjoe@php.net>
Mon, 11 Apr 2016 12:24:37 +0000 (13:24 +0100)
Zend/zend_execute_API.c

index bdb9bb7bd5a48e58fa44c8808a796a0049fcb7e6..1cbbc1a0a114cbe3e5208343af1d174d9ce340ac 100644 (file)
@@ -786,6 +786,9 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
        if (func->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) {
                if (func->common.fn_flags & ZEND_ACC_ABSTRACT) {
                        zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
+                       if (EG(current_execute_data) == &dummy_execute_data) {
+                               EG(current_execute_data) = dummy_execute_data.prev_execute_data;
+                       }
                        return FAILURE;
                }
                if (func->common.fn_flags & ZEND_ACC_DEPRECATED) {