cvs: ZendEngine2 / zend_compile.c zend_compile.h

From: Date: Sun, 02 Mar 2003 13:33:31 +0000
Subject: cvs: ZendEngine2 / zend_compile.c zend_compile.h
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-983@lists.php.net to get a copy of this message
zeev Sun Mar 2 08:33:31 2003 EDT Modified files: /ZendEngine2 zend_compile.c zend_compile.h Log: Improve infrastructure Index: ZendEngine2/zend_compile.c diff -u ZendEngine2/zend_compile.c:1.378 ZendEngine2/zend_compile.c:1.379 --- ZendEngine2/zend_compile.c:1.378 Sun Mar 2 05:04:53 2003 +++ ZendEngine2/zend_compile.c Sun Mar 2 08:33:31 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.c,v 1.378 2003/03/02 10:04:53 zeev Exp $ */ +/* $Id: zend_compile.c,v 1.379 2003/03/02 13:33:31 zeev Exp $ */ #include "zend_language_parser.h" #include "zend.h" @@ -286,11 +286,8 @@ if (varname->op_type == IS_CONST && varname->u.constant.type == IS_STRING) { zend_auto_global *auto_global; - if (zend_hash_find(CG(auto_globals), varname->u.constant.value.str.val, varname->u.constant.value.str.len+1, (void **) &auto_global)==SUCCESS) { + if (zend_is_auto_global(varname->u.constant.value.str.val, varname->u.constant.value.str.len+1 TSRMLS_CC)) { opline_ptr->op2.u.EA.type = ZEND_FETCH_GLOBAL; - if (auto_global->armed) { - auto_global->armed = auto_global->auto_global_callback(auto_global->name, auto_global->name_len TSRMLS_CC); - } } else { /* if (CG(active_op_array)->static_variables && zend_hash_exists(CG(active_op_array)->static_variables, varname->u.constant.value.str.val, varname->u.constant.value.str.len+1)) { opline_ptr->op2.u.EA.type = ZEND_FETCH_STATIC; @@ -3168,6 +3165,21 @@ { free(auto_global->name); } + + +zend_bool zend_is_auto_global(char *name, uint name_len TSRMLS_DC) +{ + zend_auto_global *auto_global; + + if (zend_hash_find(CG(auto_globals), name, name_len+1, (void **) &auto_global)==SUCCESS) { + if (auto_global->armed) { + auto_global->armed = auto_global->auto_global_callback(auto_global->name, auto_global->name_len TSRMLS_CC); + } + return 1; + } + return 0; +} + int zend_register_auto_global(char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC) { Index: ZendEngine2/zend_compile.h diff -u ZendEngine2/zend_compile.h:1.217 ZendEngine2/zend_compile.h:1.218 --- ZendEngine2/zend_compile.h:1.217 Sun Mar 2 05:04:53 2003 +++ ZendEngine2/zend_compile.h Sun Mar 2 08:33:31 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.h,v 1.217 2003/03/02 10:04:53 zeev Exp $ */ +/* $Id: zend_compile.h,v 1.218 2003/03/02 13:33:31 zeev Exp $ */ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H @@ -472,6 +472,7 @@ void zend_auto_global_dtor(zend_auto_global *auto_global); int zend_register_auto_global(char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC); +zend_bool zend_is_auto_global(char *name, uint name_len TSRMLS_DC); int zendlex(znode *zendlval TSRMLS_DC);

« previous php.zend-engine.cvs (#983) next »