cvs: ZendEngine2(PHP_5_3) / zend_closures.c zend_closures.h zend_object_handlers.c /tests closure_034.phpt closure_035.phpt closure_036.phpt

[email protected] ("Dmitry Stogov") Wed, 14 Jan 2009 10:28:22 -0000
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1231928902@cvsserver>
dmitry		Wed Jan 14 10:28:22 2009 UTC

  Removed files:               (Branch: PHP_5_3)
    /ZendEngine2/tests	closure_034.phpt closure_035.phpt 
                      	closure_036.phpt 

  Modified files:              
    /ZendEngine2	zend_closures.c zend_closures.h zend_object_handlers.c 
  Log:
  Reverted "Rebind closure when binding to property"
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_closures.c?r1=1.3.2.24&r2=1.3.2.25&diff_format=u
Index: ZendEngine2/zend_closures.c
diff -u ZendEngine2/zend_closures.c:1.3.2.24 ZendEngine2/zend_closures.c:1.3.2.25
--- ZendEngine2/zend_closures.c:1.3.2.24	Sun Jan  4 14:23:29 2009
+++ ZendEngine2/zend_closures.c	Wed Jan 14 10:28:22 2009
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_closures.c,v 1.3.2.24 2009/01/04 14:23:29 helly Exp $ */
+/* $Id: zend_closures.c,v 1.3.2.25 2009/01/14 10:28:22 dmitry Exp $ */
 
 #include "zend.h"
 #include "zend_API.h"
@@ -118,26 +118,6 @@
 }
 /* }}} */
 
-ZEND_API zval* zend_closure_copy(zval *closure_obj, zval *this_ptr TSRMLS_DC) /* {{{ */
-{
-	zend_closure *closure;
-
-	zval_copy_ctor(closure_obj);
-	closure = (zend_closure *)zend_object_store_get_object(closure_obj TSRMLS_CC);
-	if (closure->this_ptr) {
-		zval_ptr_dtor(&closure->this_ptr);
-	}
-	closure->this_ptr = this_ptr;
-	if (this_ptr) {
-		Z_ADDREF_P(this_ptr);
-		closure->func.common.scope = Z_OBJCE_P(this_ptr);
-	} else {
-		closure->func.common.scope = NULL;
-	}
-	return closure_obj;
-}
-/* }}} */
-
 static zend_function *zend_closure_get_method(zval **object_ptr, char *method_name, int method_len TSRMLS_DC) /* {{{ */
 {
 	char *lc_name;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_closures.h?r1=1.1.2.6&r2=1.1.2.7&diff_format=u
Index: ZendEngine2/zend_closures.h
diff -u ZendEngine2/zend_closures.h:1.1.2.6 ZendEngine2/zend_closures.h:1.1.2.7
--- ZendEngine2/zend_closures.h:1.1.2.6	Sat Jan  3 17:48:39 2009
+++ ZendEngine2/zend_closures.h	Wed Jan 14 10:28:22 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_closures.h,v 1.1.2.6 2009/01/03 17:48:39 helly Exp $ */
+/* $Id: zend_closures.h,v 1.1.2.7 2009/01/14 10:28:22 dmitry Exp $ */
 
 #ifndef ZEND_CLOSURES_H
 #define ZEND_CLOSURES_H
@@ -35,7 +35,6 @@
 ZEND_API zend_function *zend_get_closure_invoke_method(zval *obj TSRMLS_DC);
 ZEND_API const zend_function *zend_get_closure_method_def(zval *obj TSRMLS_DC);
 ZEND_API zval* zend_get_closure_this_ptr(zval *obj TSRMLS_DC);
-ZEND_API zval* zend_closure_copy(zval *closure, zval *this_ptr TSRMLS_DC);
 
 END_EXTERN_C()
 
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_object_handlers.c?r1=1.135.2.6.2.22.2.25&r2=1.135.2.6.2.22.2.26&diff_format=u
Index: ZendEngine2/zend_object_handlers.c
diff -u ZendEngine2/zend_object_handlers.c:1.135.2.6.2.22.2.25 ZendEngine2/zend_object_handlers.c:1.135.2.6.2.22.2.26
--- ZendEngine2/zend_object_handlers.c:1.135.2.6.2.22.2.25	Wed Jan  7 22:12:39 2009
+++ ZendEngine2/zend_object_handlers.c	Wed Jan 14 10:28:22 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_object_handlers.c,v 1.135.2.6.2.22.2.25 2009/01/07 22:12:39 andrei Exp $ */
+/* $Id: zend_object_handlers.c,v 1.135.2.6.2.22.2.26 2009/01/14 10:28:22 dmitry Exp $ */
 
 #include "zend.h"
 #include "zend_globals.h"
@@ -405,10 +405,6 @@
 		member = tmp_member;
 	}
 
-	if (value && Z_TYPE_P(value) == IS_OBJECT && Z_OBJCE_P(value) == zend_ce_closure && zend_get_closure_this_ptr(value TSRMLS_CC) != object) {
-		value = zend_closure_copy(value, object TSRMLS_CC);
-	}
-
 	property_info = zend_get_property_info(zobj->ce, member, (zobj->ce->__set != NULL) TSRMLS_CC);
 
 	if (property_info && zend_hash_quick_find(zobj->properties, property_info->name, property_info->name_length+1, property_info->h, (void **) &variable_ptr) == SUCCESS) {