Re: [ZEND-ENGINE-CVS] 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] (Marcus Boerger) Sat, 17 Jan 2009 20:06:28 +0100
Newsgroups php.zend-engine.cvs
Message-ID <[email protected]>
Hello Dmitry,

  thx

Wednesday, January 14, 2009, 11:28:22 AM, you wrote:

> 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) {






Best regards,
 Marcus