From: Dmitry Stogov Date: Wed, 1 Oct 2014 06:46:13 +0000 (+0400) Subject: Removed zend_execute_data->prev_nested_call. Reuse prev_execute_data instead. X-Git-Tag: POST_NATIVE_TLS_MERGE^2~90^2~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9f7564b12b6e57d018bbc158e00f41499017d29e;p=php Removed zend_execute_data->prev_nested_call. Reuse prev_execute_data instead. --- diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 573f1fe5ec..cf1256ab3c 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -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) */ diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index e5ab12d9c5..ce01e51d3f 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -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; } diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index f59a10179b..b528bd0ab5 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -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; diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index b038600ead..4c64cb7590 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -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; } } /* }}} */ diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 02c93477e3..c215fc35f8 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -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); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 17858c2875..cb6fd8b5e2 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -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);