diff options
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r-- | Zend/zend_compile.c | 48 |
1 files changed, 2 insertions, 46 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 1190cef1b4..9ce33737af 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -605,50 +605,6 @@ static uint32_t zend_start_live_range(zend_op_array *op_array, uint32_t start) / } /* }}} */ -static uint32_t zend_start_live_range_ex(zend_op_array *op_array, uint32_t start) /* {{{ */ -{ - if (op_array->last_live_range == 0 || - op_array->live_range[op_array->last_live_range - 1].start <= start) { - return zend_start_live_range(op_array, start); - } else { - /* Live ranges have to be sorted by "start" field */ - uint32_t n = op_array->last_live_range; - - /* move early ranges to make a room */ - op_array->last_live_range = n + 1; - op_array->live_range = erealloc(op_array->live_range, sizeof(zend_live_range) * op_array->last_live_range); - do { - op_array->live_range[n] = op_array->live_range[n-1]; - n--; - } while (n != 0 && op_array->live_range[n-1].start > start); - - /* initialize new range */ - op_array->live_range[n].start = start; - - /* update referens to live-ranges from stack */ - if (!zend_stack_is_empty(&CG(loop_var_stack))) { - zend_loop_var *loop_var = zend_stack_top(&CG(loop_var_stack)); - zend_loop_var *base = zend_stack_base(&CG(loop_var_stack)); - - for (; loop_var >= base; loop_var--) { - if (loop_var->opcode == ZEND_RETURN) { - /* Stack separator */ - break; - } else if (loop_var->opcode == ZEND_FREE || - loop_var->opcode == ZEND_FE_FREE) { - if (loop_var->u.live_range_offset >= n) { - loop_var->u.live_range_offset++; - } else { - break; - } - } - } - } - return n; - } -} -/* }}} */ - static void zend_end_live_range(zend_op_array *op_array, uint32_t offset, uint32_t end, uint32_t kind, uint32_t var) /* {{{ */ { zend_live_range *range = op_array->live_range + offset; @@ -2041,7 +1997,7 @@ static void zend_find_live_range(zend_op *opline, zend_uchar type, uint32_t var) } zend_end_live_range(CG(active_op_array), - zend_start_live_range_ex(CG(active_op_array), + zend_start_live_range(CG(active_op_array), def + 1 - CG(active_op_array)->opcodes), opline - CG(active_op_array)->opcodes, ZEND_LIVE_TMPVAR, var); @@ -7944,7 +7900,7 @@ static void zend_compile_encaps_list(znode *result, zend_ast *ast) /* {{{ */ GET_NODE(result, opline->result); } else { uint32_t var; - uint32_t range = zend_start_live_range_ex(CG(active_op_array), rope_init_lineno); + uint32_t range = zend_start_live_range(CG(active_op_array), rope_init_lineno); init_opline->extended_value = j; opline->opcode = ZEND_ROPE_END; |