From b7b614d0b5928b8c5263e75be57a32be52d299b0 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Tue, 16 Nov 1999 18:46:32 +0000 Subject: [PATCH] - In any case create the free opcode. Need to allow the functions to create a hint. --- Zend/zend_compile.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 8e37655b6a..9955453190 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -622,17 +622,16 @@ void do_add_variable(znode *result, znode *op1, znode *op2 CLS_DC) void do_free(znode *op1 CLS_DC) { if (op1->op_type==IS_TMP_VAR) { - zend_op *opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; - - if ((opline->opcode == ZEND_DO_FCALL) || (opline->opcode == ZEND_DO_FCALL_BY_NAME)) { - opline->result.u.EA.type |= EXT_TYPE_UNUSED; - } else { - zend_op *opline = get_next_op(CG(active_op_array) CLS_CC); + zend_op *last_opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; + zend_op *opline = get_next_op(CG(active_op_array) CLS_CC); - opline->opcode = ZEND_FREE; - opline->op1 = *op1; - SET_UNUSED(opline->op2); + if ((last_opline->opcode == ZEND_DO_FCALL) || (last_opline->opcode == ZEND_DO_FCALL_BY_NAME)) { + last_opline->result.u.EA.type |= EXT_TYPE_UNUSED; } + + opline->opcode = ZEND_FREE; + opline->op1 = *op1; + SET_UNUSED(opline->op2); } else if (op1->op_type==IS_VAR) { zend_op *opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; -- 2.50.1