From: Arnaud Le Blanc Date: Sun, 14 Sep 2008 15:20:16 +0000 (+0000) Subject: MFB "Disabled $GLOBALS' refcount modification" X-Git-Tag: BEFORE_HEAD_NS_CHANGE~391 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=374723d056ceb71617141e202725c92ecb2ee724;p=php MFB "Disabled $GLOBALS' refcount modification" --- diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c index 7892c6d027..8571cd7b66 100644 --- a/Zend/zend_gc.c +++ b/Zend/zend_gc.c @@ -302,7 +302,9 @@ static void zval_scan_black(zval *pz TSRMLS_DC) 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); @@ -346,7 +348,9 @@ static void zval_mark_grey(zval *pz TSRMLS_DC) 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; }