cvs: ZendEngine2 / zend_execute.c zend_object_handlers.c

From: Date: Wed, 29 Jan 2003 08:55:13 +0000
Subject: cvs: ZendEngine2 / zend_execute.c zend_object_handlers.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-851@lists.php.net to get a copy of this message
zeev Wed Jan 29 03:55:13 2003 EDT Modified files: /ZendEngine2 zend_execute.c zend_object_handlers.c Log: Fix assignments to $this. Fixes the 'make install' problem reported on php-dev Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.414 ZendEngine2/zend_execute.c:1.415 --- ZendEngine2/zend_execute.c:1.414 Tue Jan 28 04:44:18 2003 +++ ZendEngine2/zend_execute.c Wed Jan 29 03:55:12 2003 @@ -310,8 +310,18 @@ SEPARATE_ZVAL_IF_NOT_REF(object_ptr); object = *object_ptr; } + /* by now, property is a string */ - /* here property is a string */ + + /* separate our value if necessary */ + if (value_op->op_type == IS_TMP_VAR) { + zval *orig_value = value; + + ALLOC_ZVAL(value); + *value = *orig_value; + value->is_ref = 0; + value->refcount = 0; + } Z_OBJ_HT_P(object)->write_property(object, property, value TSRMLS_CC); if (property == &tmp) { zval_dtor(property); Index: ZendEngine2/zend_object_handlers.c diff -u ZendEngine2/zend_object_handlers.c:1.26 ZendEngine2/zend_object_handlers.c:1.27 --- ZendEngine2/zend_object_handlers.c:1.26 Tue Jan 14 07:13:00 2003 +++ ZendEngine2/zend_object_handlers.c Wed Jan 29 03:55:12 2003 @@ -220,7 +220,9 @@ /* To check: can't *variable_ptr be some system variable like error_zval here? */ (*variable_ptr)->type = value->type; (*variable_ptr)->value = value->value; - zval_copy_ctor(*variable_ptr); + if (value->refcount>0) { + zval_copy_ctor(*variable_ptr); + } setter_done = 1; } }

« previous php.zend-engine.cvs (#851) next »