mirror of
https://github.com/php/php-src.git
synced 2024-09-24 11:27:28 +00:00
Fixed segfault in file cache serialize if live range is empty after
optimiaztion
This commit is contained in:
parent
4eb4a78bf0
commit
2661a47479
@ -368,16 +368,20 @@ void zend_optimizer_remove_live_range(zend_op_array *op_array, uint32_t var)
|
||||
i++;
|
||||
} while (i < op_array->last_live_range);
|
||||
if (i != j) {
|
||||
zend_op *opline = op_array->opcodes;
|
||||
zend_op *end = opline + op_array->last;
|
||||
if ((op_array->last_live_range = j)) {
|
||||
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];
|
||||
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++;
|
||||
}
|
||||
opline++;
|
||||
} else {
|
||||
efree(op_array->live_range);
|
||||
op_array->live_range = NULL;
|
||||
}
|
||||
}
|
||||
free_alloca(map, use_heap);
|
||||
|
Loading…
Reference in New Issue
Block a user