summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.skl
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-07-07 15:50:44 +0400
committerDmitry Stogov <dmitry@zend.com>2014-07-07 15:50:44 +0400
commit5aa91be509731eb46acff242412941325122ab03 (patch)
tree4e34ad2a092564393fb453773199c1e914eb9edb /Zend/zend_vm_execute.skl
parent6bf24f4dd01331122a0f10db392c08605f159826 (diff)
downloadphp-git-5aa91be509731eb46acff242412941325122ab03.tar.gz
Simplify call-frame handling
Diffstat (limited to 'Zend/zend_vm_execute.skl')
-rw-r--r--Zend/zend_vm_execute.skl10
1 files changed, 5 insertions, 5 deletions
diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl
index 51cede9834..4825e02b53 100644
--- a/Zend/zend_vm_execute.skl
+++ b/Zend/zend_vm_execute.skl
@@ -35,15 +35,15 @@ ZEND_API void zend_{%EXECUTOR_NAME%}(zend_op_array *op_array, zval *return_value
return;
}
- if (EG(current_execute_data) && EG(current_execute_data)->call) {
- execute_data = EG(current_execute_data)->call;
+ execute_data = zend_vm_stack_push_call_frame(
+ (zend_function*)op_array, 0, 0, EG(current_execute_data) ? EG(current_execute_data)->called_scope : NULL, Z_OBJ(EG(This)), NULL TSRMLS_CC);
+ if (EG(current_execute_data)) {
+ execute_data->symbol_table = zend_rebuild_symbol_table(TSRMLS_C);
} else {
- execute_data = zend_vm_stack_push_call_frame(
- (zend_function*)op_array, 0, 0, EG(current_execute_data) ? EG(current_execute_data)->called_scope : NULL, Z_OBJ(EG(This)), NULL TSRMLS_CC);
execute_data->symbol_table = &EG(symbol_table);
}
EX(prev_execute_data) = EG(current_execute_data);
- i_init_execute_data(execute_data, op_array, return_value, (execute_data->symbol_table) ? VM_FRAME_TOP_CODE : VM_FRAME_TOP_FUNCTION TSRMLS_CC);
+ i_init_execute_data(execute_data, op_array, return_value, VM_FRAME_TOP_CODE TSRMLS_CC);
zend_{%EXECUTOR_NAME%}_ex(execute_data TSRMLS_CC);
}