cvs: ZendEngine2(PHP_5_3) / zend_gc.c /tests gc_029.phpt gc_030.phpt php-src NEWS

From: Date: Tue, 08 Jul 2008 08:16:09 +0000
Subject: cvs: ZendEngine2(PHP_5_3) / zend_gc.c /tests gc_029.phpt gc_030.phpt php-src NEWS
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-6865@lists.php.net to get a copy of this message
dmitry Tue Jul 8 08:16:09 2008 UTC Added files: (Branch: PHP_5_3) /ZendEngine2/tests gc_030.phpt Modified files: /php-src NEWS /ZendEngine2 zend_gc.c /ZendEngine2/tests gc_029.phpt Log: Fixed bug #45434 (circular reference causes segfault in gc_collect_cycles()) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.190&r2=1.2027.2.547.2.965.2.191&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.965.2.190 php-src/NEWS:1.2027.2.547.2.965.2.191 --- php-src/NEWS:1.2027.2.547.2.965.2.190 Sun Jul 6 15:17:24 2008 +++ php-src/NEWS Tue Jul 8 08:16:08 2008 @@ -183,6 +183,8 @@ - Fixed an issue in date() where a : was printed for the O modifier after a P modifier was used. (Derick) +- Fixed bug #45434 (circular reference causes segfault in gc_collect_cycles()). + (Dmitry) - Fixed bug #44769 (declaring private magic methods should throw error). (Felipe) - Fixed bug #44913 (Segfault when using return in combination with nested loops and continue 2). (Dmitry) http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_gc.c?r1=1.1.2.14&r2=1.1.2.15&diff_format=u Index: ZendEngine2/zend_gc.c diff -u ZendEngine2/zend_gc.c:1.1.2.14 ZendEngine2/zend_gc.c:1.1.2.15 --- ZendEngine2/zend_gc.c:1.1.2.14 Tue Apr 29 13:50:27 2008 +++ ZendEngine2/zend_gc.c Tue Jul 8 08:16:08 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_gc.c,v 1.1.2.14 2008/04/29 13:50:27 tony2001 Exp $ */ +/* $Id: zend_gc.c,v 1.1.2.15 2008/07/08 08:16:08 dmitry Exp $ */ #include "zend.h" #include "zend_API.h" @@ -557,9 +557,9 @@ !EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].destructor_called) { EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].destructor_called = 1; - zend_try { - EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.dtor(EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.object, Z_OBJ_HANDLE(p->z) TSRMLS_CC); - } zend_end_try(); + EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.refcount++; + EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.dtor(EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.object, Z_OBJ_HANDLE(p->z) TSRMLS_CC); + EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.refcount--; } } count++; @@ -575,19 +575,15 @@ EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].valid && EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.refcount <= 0) { EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.refcount = 1; - zend_try { - Z_TYPE(p->z) = IS_NULL; - zend_objects_store_del_ref_by_handle(Z_OBJ_HANDLE(p->z) TSRMLS_CC); - } zend_end_try(); + Z_TYPE(p->z) = IS_NULL; + zend_objects_store_del_ref_by_handle(Z_OBJ_HANDLE(p->z) TSRMLS_CC); } } else if (Z_TYPE(p->z) == IS_ARRAY) { Z_TYPE(p->z) = IS_NULL; zend_hash_destroy(Z_ARRVAL(p->z)); FREE_HASHTABLE(Z_ARRVAL(p->z)); } else { - zend_try { - zval_dtor(&p->z); - } zend_end_try(); + zval_dtor(&p->z); Z_TYPE(p->z) = IS_NULL; } p = GC_G(next_to_free); http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/gc_029.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u Index: ZendEngine2/tests/gc_029.phpt diff -u ZendEngine2/tests/gc_029.phpt:1.1.2.1 ZendEngine2/tests/gc_029.phpt:1.1.2.2 --- ZendEngine2/tests/gc_029.phpt:1.1.2.1 Fri Mar 14 18:36:34 2008 +++ ZendEngine2/tests/gc_029.phpt Tue Jul 8 08:16:09 2008 @@ -1,5 +1,5 @@ --TEST-- -GC 028: GC and destructors +GC 029: GC and destructors --FILE-- <?php class Foo { http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/gc_030.phpt?view=markup&rev=1.1 Index: ZendEngine2/tests/gc_030.phpt +++ ZendEngine2/tests/gc_030.phpt

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