summaryrefslogtreecommitdiff
path: root/lang/php4/files/patch-Zend::zend_execute.c
blob: bc6f098c8ad0d4a2b1f26a13f85e51a4c84da9f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
--- Zend/zend_execute.c.orig	Tue Dec 28 15:03:55 2004
+++ Zend/zend_execute.c	Tue Dec 28 15:03:57 2004
@@ -1577,6 +1577,10 @@
 									EX(Ts)[EX(opline)->op1.u.var].EA.data.overloaded_element.elements_list = (zend_llist *) emalloc(sizeof(zend_llist));
 									zend_llist_init(EX(Ts)[EX(opline)->op1.u.var].EA.data.overloaded_element.elements_list, sizeof(zend_overloaded_element), NULL, 0);
 									EX(object).ptr->refcount++;
+									/* is-ref needed so that assign to this in call won't separate it */
+									if(EX(object).ptr->refcount > 1) {
+										EX(object).ptr->is_ref = 1;
+									}
 								}
 								zend_llist_add_element(EX(Ts)[EX(opline)->op1.u.var].EA.data.overloaded_element.elements_list, &overloaded_element);
 								EX(fbc) = (zend_function *) emalloc(sizeof(zend_function));