summaryrefslogtreecommitdiff
path: root/main/php_variables.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-07-07 16:19:24 +0400
committerDmitry Stogov <dmitry@zend.com>2014-07-07 16:19:24 +0400
commit7ce2d59ad2e0cac525ad7419e57da68fa2160677 (patch)
treee5a675ccf8aea7b70cdd69b17cbb00e609854ea7 /main/php_variables.c
parentedf2f715e691860430166d8c44793642e36192f7 (diff)
parent5aa91be509731eb46acff242412941325122ab03 (diff)
downloadphp-git-7ce2d59ad2e0cac525ad7419e57da68fa2160677.tar.gz
Merge branch 'call-frame' into phpng
* call-frame: Simplify call-frame handling Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data) Use values from current_execute_data instead of globals where possible Removed EG(called_scope) and use corresponding value from EG(current_execute_data) Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are executing something. Removed EG(opline_ptr) and use corresponding value from EG(current_execute_data) Removed EG(active_op_array) and use corresponding value from EG(current_execute_data) Uinified call frame handling for user and internal functions. Now EG(current_execute_data) always point to the call frame of the currently executed function. Fixed cleanup of incompleytely passed parameters Prohibited parameter redefinition Fixed support for extra arguments in conjunction with variadiv argument. Use compile time flags to check if we call constructor and result of ZEND_NEW is used or not. Fixed uninitialized variables Optimization Changed zend_execute_data layout to reduce memory overhead Help C compilet to do the better job optimizing target code Use fast comparison for (func->type == ZEND_USER_FUNCTION || func->type == ZEND_EVAL_CODE) Keep extra args in the same VM stack segment (after all CV and TMP vars) Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions) Refactoring: use call_frames instead of call_slots Conflicts: Zend/zend_vm_def.h Zend/zend_vm_execute.h
Diffstat (limited to 'main/php_variables.c')
-rw-r--r--main/php_variables.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/main/php_variables.c b/main/php_variables.c
index fbd91dc286..3bb6d65aa5 100644
--- a/main/php_variables.c
+++ b/main/php_variables.c
@@ -110,8 +110,7 @@ PHPAPI void php_register_variable_ex(char *var_name, zval *val, zval *track_vars
}
/* GLOBALS hijack attempt, reject parameter */
- if (symtable1 && EG(active_symbol_table) &&
- symtable1 == &EG(active_symbol_table)->ht &&
+ if (symtable1 == &EG(symbol_table).ht &&
var_len == sizeof("GLOBALS")-1 &&
!memcmp(var, "GLOBALS", sizeof("GLOBALS")-1)) {
zval_dtor(val);