i++;
} while (i < op_array->last_live_range);
if (i != j) {
- if ((op_array->last_live_range = j)) {
- zend_op *opline = op_array->opcodes;
- zend_op *end = opline + op_array->last;
-
- while (opline != end) {
- if ((opline->opcode == ZEND_FREE || opline->opcode == ZEND_FE_FREE) &&
- opline->extended_value == ZEND_FREE_ON_RETURN) {
- opline->op2.num = map[opline->op2.num];
- }
- opline++;
+ zend_op *opline = op_array->opcodes;
+ zend_op *end = opline + op_array->last;
+
+ op_array->last_live_range = j;
+ while (opline != end) {
+ if ((opline->opcode == ZEND_FREE || opline->opcode == ZEND_FE_FREE) &&
+ opline->extended_value == ZEND_FREE_ON_RETURN) {
+ opline->op2.num = map[opline->op2.num];
}
- } else {
- efree(op_array->live_range);
- op_array->live_range = NULL;
+ opline++;
}
}
free_alloca(map, use_heap);