cvs: ZendEngine2(PHP_5_3) / zend_gc.c

[email protected] ("Dmitry Stogov")
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1205927170@cvsserver>
dmitry		Wed Mar 19 11:46:10 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /ZendEngine2	zend_gc.c 
  Log:
  Disabled $GLOBALS' refcount modification
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_gc.c?r1=1.1.2.9&r2=1.1.2.10&diff_format=u
Index: ZendEngine2/zend_gc.c
diff -u ZendEngine2/zend_gc.c:1.1.2.9 ZendEngine2/zend_gc.c:1.1.2.10
--- ZendEngine2/zend_gc.c:1.1.2.9	Fri Mar 14 18:36:34 2008
+++ ZendEngine2/zend_gc.c	Wed Mar 19 11:46:10 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_gc.c,v 1.1.2.9 2008/03/14 18:36:34 dmitry Exp $ */
+/* $Id: zend_gc.c,v 1.1.2.10 2008/03/19 11:46:10 dmitry Exp $ */
 
 #include "zend.h"
 #include "zend_API.h"
@@ -305,7 +305,9 @@
 
 static int children_scan_black(zval **pz TSRMLS_DC)
 {
-	(*pz)->refcount__gc++;
+	if (Z_TYPE_PP(pz) != IS_ARRAY || Z_ARRVAL_PP(pz) != &EG(symbol_table)) {
+		(*pz)->refcount__gc++;
+	}
 
 	if (GC_ZVAL_GET_COLOR(*pz) != GC_BLACK) {
 		zval_scan_black(*pz TSRMLS_CC);
@@ -349,7 +351,9 @@
 
 static int children_mark_grey(zval **pz TSRMLS_DC)
 {
-	(*pz)->refcount__gc--;
+	if (Z_TYPE_PP(pz) != IS_ARRAY || Z_ARRVAL_PP(pz) != &EG(symbol_table)) {
+		(*pz)->refcount__gc--;
+	}
 	zval_mark_grey(*pz TSRMLS_CC);
 	return 0;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.