summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2005-06-29 08:44:01 +0000
committerStanislav Malyshev <stas@php.net>2005-06-29 08:44:01 +0000
commitfb0c96d07b68b06c327b1805e13ed22d72d28bba (patch)
tree383f90c83ac71c3d968738ccf37b46697d0d6d5e
parent9727e938eea3e8ba711cbc92458f91224bb79904 (diff)
downloadphp-git-fb0c96d07b68b06c327b1805e13ed22d72d28bba.tar.gz
fix conditions for freeing
-rw-r--r--Zend/zend_execute.c6
-rw-r--r--Zend/zend_vm_def.h2
-rw-r--r--Zend/zend_vm_execute.h8
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 */