cvs: ZendEngine2(PHP_5_3) / zend_execute.c

[email protected] ("Dmitry Stogov") Tue, 21 Apr 2009 09:40:13 -0000
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1240306813@cvsserver>
dmitry		Tue Apr 21 09:40:13 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /ZendEngine2	zend_execute.c 
  Log:
  Fixed bug #48004 (Error handler prevents creation of default object)
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.c?r1=1.716.2.12.2.24.2.42&r2=1.716.2.12.2.24.2.43&diff_format=u
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.42 ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.43
--- ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.42	Tue Apr 21 08:12:07 2009
+++ ZendEngine2/zend_execute.c	Tue Apr 21 09:40:13 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.42 2009/04/21 08:12:07 dmitry Exp $ */
+/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.43 2009/04/21 09:40:13 dmitry Exp $ */
 
 #define ZEND_INTENSIVE_DEBUGGING 0
 
@@ -536,9 +536,9 @@
 		    (Z_TYPE_P(object) == IS_BOOL && Z_LVAL_P(object) == 0) ||
 		    (Z_TYPE_P(object) == IS_STRING && Z_STRLEN_P(object) == 0)) {
 			SEPARATE_ZVAL_IF_NOT_REF(object_ptr);
-			zval_dtor(object);
+			zval_dtor(*object_ptr);
+			object_init(*object_ptr);
 			object = *object_ptr;
-			object_init(object);
 			zend_error(E_STRICT, "Creating default object from empty value");
 		} else {
 			zend_error(E_WARNING, "Attempt to assign property of non-object");
@@ -551,8 +551,6 @@
 		}
 	}
 	
-	/* here we are sure we are dealing with an object */
-
 	/* separate our value if necessary */
 	if (value_op->op_type == IS_TMP_VAR) {
 		zval *orig_value = value;