diff options
| author | Zeev Suraski <zeev@php.net> | 1999-04-08 20:21:36 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 1999-04-08 20:21:36 +0000 |
| commit | 17bdb70823db3b890ee6023d339fe0864b8d4ea3 (patch) | |
| tree | d82792d85a317664132feeef84dae0d52c6d0c55 /Zend/zend_compile.c | |
| parent | 9d1a9331b3168fdd1f5a7e1efe4de5a4ecc88aaa (diff) | |
| download | php-git-17bdb70823db3b890ee6023d339fe0864b8d4ea3.tar.gz | |
$GLOBALS support
Diffstat (limited to 'Zend/zend_compile.c')
| -rw-r--r-- | Zend/zend_compile.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 48b7d9aea1..9f4dc4e079 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -154,6 +154,24 @@ void do_binary_assign_op(int op, znode *result, znode *op1, znode *op2 CLS_DC) } + +void do_fetch_globals(znode *varname) +{ + if (!CG(active_op_array)->initialized_globals + && varname->op_type == IS_CONST + && varname->u.constant.type == IS_STRING + && varname->u.constant.value.str.len == (sizeof("GLOBALS")-1) + && !memcmp(varname->u.constant.value.str.val, "GLOBALS", sizeof("GLOBALS")-1)) { + zend_op *opline = get_next_op(CG(active_op_array) CLS_CC); + + opline->opcode = ZEND_INIT_GLOBALS; + SET_UNUSED(opline->op1); + SET_UNUSED(opline->op2); + CG(active_op_array)->initialized_globals = 1; + } +} + + void fetch_simple_variable(znode *result, znode *varname, int bp CLS_DC) { int next_op_number = get_next_op_number(CG(active_op_array)); |
