} else {
zval_ptr_dtor(&object_zval);
}
- ZEND_VM_JMP(EX(op_array)->opcodes + opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
call_slot *call = EX(call_slots) + opline->extended_value;
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
if(Z_OBJ_HT_P(array_ptr)->get_class_entry == NULL) {
zend_error(E_WARNING, "foreach() cannot iterate over objects without PHP class");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
ce = Z_OBJCE_P(array_ptr);
FREE_OP1_VAR_PTR();
}
if (is_empty) {
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
default:
case ZEND_ITER_INVALID:
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
case ZEND_ITER_PLAIN_OBJECT: {
zend_object *zobj = Z_OBJ_P(array);
while (1) {
if ((value = zend_hash_get_current_data(fe_ht)) == NULL) {
/* reached end of iteration */
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
if (Z_TYPE_P(value) == IS_INDIRECT) {
zend_hash_set_pointer(fe_ht, (HashPointer*)EX_VAR((opline+1)->op1.var));
if ((value = zend_hash_get_current_data(fe_ht)) == NULL) {
/* reached end of iteration */
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
if (key) {
zend_hash_get_current_key_zval(fe_ht, key);
zval_ptr_dtor(array_ref);
HANDLE_EXCEPTION();
}
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
value = iter->funcs->get_current_data(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
}
if (!value) {
/* failure in get_current_data */
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
if (key) {
if (iter->funcs->get_current_key) {
} else {
zval_ptr_dtor(&object_zval);
}
- ZEND_VM_JMP(EX(op_array)->opcodes + opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
call_slot *call = EX(call_slots) + opline->extended_value;
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
if(Z_OBJ_HT_P(array_ptr)->get_class_entry == NULL) {
zend_error(E_WARNING, "foreach() cannot iterate over objects without PHP class");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
ce = Z_OBJCE_P(array_ptr);
}
if (is_empty) {
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
if(Z_OBJ_HT_P(array_ptr)->get_class_entry == NULL) {
zend_error(E_WARNING, "foreach() cannot iterate over objects without PHP class");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
ce = Z_OBJCE_P(array_ptr);
}
if (is_empty) {
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
if(Z_OBJ_HT_P(array_ptr)->get_class_entry == NULL) {
zend_error(E_WARNING, "foreach() cannot iterate over objects without PHP class");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
ce = Z_OBJCE_P(array_ptr);
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
}
if (is_empty) {
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
default:
case ZEND_ITER_INVALID:
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
case ZEND_ITER_PLAIN_OBJECT: {
zend_object *zobj = Z_OBJ_P(array);
while (1) {
if ((value = zend_hash_get_current_data(fe_ht)) == NULL) {
/* reached end of iteration */
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
if (Z_TYPE_P(value) == IS_INDIRECT) {
zend_hash_set_pointer(fe_ht, (HashPointer*)EX_VAR((opline+1)->op1.var));
if ((value = zend_hash_get_current_data(fe_ht)) == NULL) {
/* reached end of iteration */
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
if (key) {
zend_hash_get_current_key_zval(fe_ht, key);
zval_ptr_dtor(array_ref);
HANDLE_EXCEPTION();
}
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
value = iter->funcs->get_current_data(iter TSRMLS_CC);
if (UNEXPECTED(EG(exception) != NULL)) {
}
if (!value) {
/* failure in get_current_data */
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
if (key) {
if (iter->funcs->get_current_key) {
} else if (Z_TYPE_P(array_ptr) == IS_OBJECT) {
if(Z_OBJ_HT_P(array_ptr)->get_class_entry == NULL) {
zend_error(E_WARNING, "foreach() cannot iterate over objects without PHP class");
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
}
ce = Z_OBJCE_P(array_ptr);
}
if (is_empty) {
- ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
+ ZEND_VM_JMP(opline->op2.jmp_addr);
} else {
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();