summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>1999-07-27 00:14:34 +0000
committerZeev Suraski <zeev@php.net>1999-07-27 00:14:34 +0000
commit9d0d2e5a69b8f1c2b53f715b2af1e115f0d244a1 (patch)
tree3dc0905cb3ff83c10128eb00f4ef524145a0a303
parent09628fd51e56a9156ba3041b452bb8293bf2e936 (diff)
downloadphp-git-9d0d2e5a69b8f1c2b53f715b2af1e115f0d244a1.tar.gz
Set reference count and is_ref values for new objects
-rw-r--r--Zend/zend_execute.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index a6663fee59..8751982264 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1332,7 +1332,6 @@ binary_assign_op_addr: {
} else { /* used for member function calls */
object_ptr = _get_object_zval_ptr(&opline->op1, Ts, &free_op1 ELS_CC);
-
if (!object_ptr
|| ((object_ptr->type==IS_OBJECT) && (object_ptr->value.obj.ce->handle_function_call))) { /* overloaded function call */
zend_overloaded_element overloaded_element;
@@ -1694,6 +1693,9 @@ send_by_ref:
zend_error(E_ERROR, "Cannot instanciate non-existant class: %s", class_name.value.str.val);
}
object_init_ex(&Ts[opline->result.u.var].tmp_var, ce);
+ Ts[opline->result.u.var].tmp_var.refcount=1;
+ Ts[opline->result.u.var].tmp_var.EA.is_ref=1;
+ Ts[opline->result.u.var].tmp_var.EA.locks=0;
zval_dtor(&class_name);
FREE_OP(&opline->op1, free_op1);