diff options
author | Zeev Suraski <zeev@php.net> | 2001-06-27 15:47:31 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-06-27 15:47:31 +0000 |
commit | 2536259557a4986f0af4fdaa129898bdadfadcf4 (patch) | |
tree | e71493e00ee8af4c2f41b43bdf506b1ed97bfa57 | |
parent | ee115c8ecce2b7f58c7a218dceb76c8f3c0f19f4 (diff) | |
download | php-git-2536259557a4986f0af4fdaa129898bdadfadcf4.tar.gz |
Fix leak in the patch, and revert a couple of lines I didn't mean to commit
-rw-r--r-- | Zend/zend_execute.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 667a6d1689..c6a71264c9 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -328,6 +328,7 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 int i; if (T->EA.data.str_offset.str->value.str.len==0) { + STR_FREE(T->EA.data.str_offset.str->value.str.val); T->EA.data.str_offset.str->value.str.val = (char *) emalloc(T->EA.data.str_offset.offset+1+1); } else { T->EA.data.str_offset.str->value.str.val = (char *) erealloc(T->EA.data.str_offset.str->value.str.val, T->EA.data.str_offset.offset+1+1); @@ -1085,12 +1086,9 @@ ZEND_API void execute(zend_op_array *op_array ELS_DC) EG(binary_op) = boolean_xor_function; /* Fall through */ binary_op_addr: - { - zval *zp1 = get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R); - zval *zp2 = get_zval_ptr(&opline->op2, Ts, &EG(free_op1), BP_VAR_R); - - EG(binary_op)(&Ts[opline->result.u.var].tmp_var, zp1, zp2); - } + EG(binary_op)(&Ts[opline->result.u.var].tmp_var, + get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R), + get_zval_ptr(&opline->op2, Ts, &EG(free_op2), BP_VAR_R) ); FREE_OP(&opline->op1, EG(free_op1)); FREE_OP(&opline->op2, EG(free_op2)); NEXT_OPCODE(); |