diff options
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index bb80793a28..77f39bd0aa 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -547,6 +547,9 @@ static void zend_fetch_var_address(zend_op *opline, temp_variable *Ts, int type } target_symbol_table = EG(active_op_array)->static_variables; break; + case ZEND_FETCH_STATIC_MEMBER: + target_symbol_table = &Ts[opline->op2.u.var].EA.class_entry->static_members; + break; EMPTY_SWITCH_DEFAULT_CASE() } @@ -579,7 +582,7 @@ static void zend_fetch_var_address(zend_op *opline, temp_variable *Ts, int type } if (opline->extended_value == ZEND_FETCH_LOCAL) { FREE_OP(Ts, &opline->op1, free_op1); - } else if (opline->extended_value == ZEND_FETCH_STATIC) { + } else if (opline->extended_value == ZEND_FETCH_STATIC || opline->extended_value == ZEND_FETCH_STATIC_MEMBER) { zval_update_constant(retval, (void *) 1 TSRMLS_CC); } |
