summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c48
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;