cvs: ZendEngine2 / zend_compile.c zend_compile.h
| From: | Zeev Suraski | 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);