cvs: ZendEngine2 / zend_closures.c /tests closure_023.phpt

From: Date: Sat, 26 Jul 2008 14:15:44 +0000
Subject: cvs: ZendEngine2 / zend_closures.c /tests closure_023.phpt
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-6942@lists.php.net to get a copy of this message
dmitry Sat Jul 26 14:15:44 2008 UTC Modified files: /ZendEngine2 zend_closures.c /ZendEngine2/tests closure_023.phpt Log: Fixed bug #45608 (closures don't work in static methods) http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_closures.c?r1=1.8&r2=1.9&diff_format=u Index: ZendEngine2/zend_closures.c diff -u ZendEngine2/zend_closures.c:1.8 ZendEngine2/zend_closures.c:1.9 --- ZendEngine2/zend_closures.c:1.8 Sat Jul 26 13:14:55 2008 +++ ZendEngine2/zend_closures.c Sat Jul 26 14:15:44 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_closures.c,v 1.8 2008/07/26 13:14:55 dmitry Exp $ */ +/* $Id: zend_closures.c,v 1.9 2008/07/26 14:15:44 dmitry Exp $ */ #include "zend.h" #include "zend_API.h" @@ -305,6 +305,7 @@ closure->this_ptr = this_ptr; Z_ADDREF_P(this_ptr); } else { + closure->func.common.fn_flags |= ZEND_ACC_STATIC; closure->this_ptr = NULL; } } else { http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/closure_023.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/closure_023.phpt diff -u /dev/null ZendEngine2/tests/closure_023.phpt:1.2 --- /dev/null Sat Jul 26 14:15:44 2008 +++ ZendEngine2/tests/closure_023.phpt Sat Jul 26 14:15:44 2008 @@ -0,0 +1,14 @@ +--TEST-- +Closure 023: Closure declared in statically called method +--FILE-- +<?php +class foo { + public static function bar() { + $func = function() { echo "Done"; }; + $func(); + } +} +foo::bar(); +--EXPECT-- +Done +

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