diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2014-07-07 15:50:44 +0400 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2014-07-07 15:50:44 +0400 |
| commit | 5aa91be509731eb46acff242412941325122ab03 (patch) | |
| tree | 4e34ad2a092564393fb453773199c1e914eb9edb /Zend/zend_vm_execute.skl | |
| parent | 6bf24f4dd01331122a0f10db392c08605f159826 (diff) | |
| download | php-git-5aa91be509731eb46acff242412941325122ab03.tar.gz | |
Simplify call-frame handling
Diffstat (limited to 'Zend/zend_vm_execute.skl')
| -rw-r--r-- | Zend/zend_vm_execute.skl | 10 |
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); } |
