]> granicus.if.org Git - php/commitdiff
Removed zend_execute_data->prev_nested_call. Reuse prev_execute_data instead.
authorDmitry Stogov <dmitry@zend.com>
Wed, 1 Oct 2014 06:46:13 +0000 (10:46 +0400)
committerDmitry Stogov <dmitry@zend.com>
Wed, 1 Oct 2014 06:46:13 +0000 (10:46 +0400)
Zend/zend_compile.h
Zend/zend_execute.h
Zend/zend_execute_API.c
Zend/zend_generators.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 573f1fe5ec0ed30b58c12a54a2ae5e5a4611391e..cf1256ab3c779d1a2495c2aad419d6ebf3ec17cd 100644 (file)
@@ -367,7 +367,6 @@ struct _zend_execute_data {
        zend_uchar           frame_kind;
        zend_class_entry    *called_scope;
        zend_object         *object;
-       zend_execute_data   *prev_nested_call;
        zend_execute_data   *prev_execute_data;
        zval                *return_value;
        zend_class_entry    *scope;            /* function scope (self)          */
index e5ab12d9c5cc111d80975fcfd483cc60b3591950..ce01e51d3f5270008f78984825234b39ba3901fc 100644 (file)
@@ -219,7 +219,7 @@ static zend_always_inline zend_execute_data *zend_vm_stack_push_call_frame(zend_
        call->flags = flags;
        call->called_scope = called_scope;
        call->object = object;
-       call->prev_nested_call = prev;
+       call->prev_execute_data = prev;
        return call;
 }
 
index f59a10179b6aa5d08dc89fcfbe1461489739ea3d..b528bd0ab5f89936f29d034856fa5885e27af231 100644 (file)
@@ -703,7 +703,6 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
                dummy_execute_data = *EG(current_execute_data);
                dummy_execute_data.prev_execute_data = EG(current_execute_data);
                dummy_execute_data.call = NULL;
-               dummy_execute_data.prev_nested_call = NULL;
                dummy_execute_data.opline = NULL;
                dummy_execute_data.func = NULL;
                EG(current_execute_data) = &dummy_execute_data;
index b038600ead27dfdadb13b90c1d96cdbb53ff9a2c..4c64cb7590776927d750301fbd1b7ff6e771ca9a 100644 (file)
@@ -71,7 +71,7 @@ static void zend_generator_cleanup_unfinished_execution(zend_generator *generato
                if (execute_data->call->object) {
                        OBJ_RELEASE(execute_data->call->object);
                }
-               execute_data->call = execute_data->call->prev_nested_call;
+               execute_data->call = execute_data->call->prev_execute_data;
        }
 }
 /* }}} */
index 02c93477e3be4b6a477adf97768c49ab4cbf5ff8..c215fc35f82066a1230d93a634a4091796dce4fa 100644 (file)
@@ -2534,7 +2534,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
        zend_function *fbc = call->func;
 
        SAVE_OPLINE();
-       EX(call) = call->prev_nested_call;
+       EX(call) = call->prev_execute_data;
        if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
                if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
                        zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", fbc->common.scope->name->val, fbc->common.function_name->val);
@@ -5409,7 +5409,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
                                }
                                OBJ_RELEASE(call->object);
                        }
-                       EX(call) = call->prev_nested_call;
+                       EX(call) = call->prev_execute_data;
                        zend_vm_stack_free_call_frame(call TSRMLS_CC);
                        call = EX(call);
                } while (call);
index 17858c28758f933e73c0648b5bb7090a75ba6f39..cb6fd8b5e271d26c2ebab5f1b122e9d3afad78a0 100644 (file)
@@ -495,7 +495,7 @@ static int ZEND_FASTCALL  ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
        zend_function *fbc = call->func;
 
        SAVE_OPLINE();
-       EX(call) = call->prev_nested_call;
+       EX(call) = call->prev_execute_data;
        if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
                if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
                        zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", fbc->common.scope->name->val, fbc->common.function_name->val);
@@ -1312,7 +1312,7 @@ static int ZEND_FASTCALL  ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
                                }
                                OBJ_RELEASE(call->object);
                        }
-                       EX(call) = call->prev_nested_call;
+                       EX(call) = call->prev_execute_data;
                        zend_vm_stack_free_call_frame(call TSRMLS_CC);
                        call = EX(call);
                } while (call);