if (last_op_number>=0 && CG(active_op_array)->opcodes[last_op_number].opcode == ZEND_FETCH_OBJ_R) {
CG(active_op_array)->opcodes[last_op_number].opcode = ZEND_INIT_FCALL_BY_NAME;
+ CG(active_op_array)->opcodes[last_op_number].extended_value = ZEND_MEMBER_FUNC_CALL;
} else {
zend_op *opline = get_next_op(CG(active_op_array) CLS_CC);
target_symbol_table = EG(active_symbol_table);
break;
case ZEND_FETCH_GLOBAL:
+ if (op1->op_type == IS_VAR) {
+ EG(AiCount)++;
+ }
target_symbol_table = &EG(symbol_table);
break;
case ZEND_FETCH_STATIC:
return;
}
- if (container->type == IS_STRING && container->value.str.val == undefined_variable_string) {
+ if (container->type == IS_STRING && container->value.str.len==0) {
switch (type) {
case BP_VAR_RW:
case BP_VAR_W:
- if (container->type == IS_STRING && container->value.str.val == undefined_variable_string) {
+ if (container->type == IS_STRING && container->value.str.len==0) {
switch (type) {
case BP_VAR_RW:
case BP_VAR_W:
call_overloaded_function(opline->extended_value, &Ts[opline->result.u.var].tmp_var, &EG(regular_list), &EG(persistent_list) ELS_CC);
efree(function_being_called);
}
+ function_being_called = NULL;
function_state.function = (zend_function *) op_array;
EG(function_state_ptr) = &function_state;
zend_ptr_stack_clear_multiple(ELS_C);