From fb0c96d07b68b06c327b1805e13ed22d72d28bba Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Wed, 29 Jun 2005 08:44:01 +0000 Subject: [PATCH] fix conditions for freeing --- Zend/zend_execute.c | 6 +++--- Zend/zend_vm_def.h | 2 +- Zend/zend_vm_execute.h | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 4607a4cc10..fc041a9114 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -544,7 +544,7 @@ static inline void zend_assign_to_object(znode *result, zval **object_ptr, znode } zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); value->value.obj = Z_OBJ_HANDLER_P(orig_value, clone_obj)(orig_value TSRMLS_CC); - if(dup) { + if(!dup) { efree(class_name); } } else if (value_op->op_type == IS_TMP_VAR) { @@ -735,7 +735,7 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2 zval_ptr_dtor(&value); } } - if (dup == SUCCESS) { + if (!dup) { efree(class_name); } } else if (PZVAL_IS_REF(variable_ptr)) { @@ -848,7 +848,7 @@ static inline void zend_receive(zval **variable_ptr_ptr, zval *value TSRMLS_DC) zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); variable_ptr->value.obj = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); } - if (dup) { + if (!dup) { efree(class_name); } } else { diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 46fc909f15..40608816d9 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2027,7 +2027,7 @@ ZEND_VM_C_LABEL(return_by_value): zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); ret->value.obj = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); *EG(return_value_ptr_ptr) = ret; - if (dup) { + if (!dup) { efree(class_name); } } else if (!IS_OP1_TMP_FREE()) { /* Not a temp var */ diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 7e2a1113ca..1fda00d121 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -1638,7 +1638,7 @@ return_by_value: zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); ret->value.obj = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); *EG(return_value_ptr_ptr) = ret; - if (dup) { + if (!dup) { efree(class_name); } } else if (!0) { /* Not a temp var */ @@ -4050,7 +4050,7 @@ return_by_value: zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); ret->value.obj = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); *EG(return_value_ptr_ptr) = ret; - if (dup) { + if (!dup) { efree(class_name); } } else if (!1) { /* Not a temp var */ @@ -6983,7 +6983,7 @@ return_by_value: zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); ret->value.obj = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); *EG(return_value_ptr_ptr) = ret; - if (dup) { + if (!dup) { efree(class_name); } } else if (!0) { /* Not a temp var */ @@ -19023,7 +19023,7 @@ return_by_value: zend_error(E_STRICT, "Implicit cloning object of class '%s' because of 'zend.ze1_compatibility_mode'", class_name); ret->value.obj = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); *EG(return_value_ptr_ptr) = ret; - if (dup) { + if (!dup) { efree(class_name); } } else if (!0) { /* Not a temp var */ -- 2.50.1