dmitry                                   Tue, 20 Apr 2010 12:30:35 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=298213

Log:
Fixed bug #48781 (Cyclical garbage collector memory leak)

Bug: http://bugs.php.net/48781 (Assigned) Cyclical garbage collector memory leak
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/NEWS
    U   php/php-src/branches/PHP_5_3/Zend/zend_execute.c
    U   php/php-src/trunk/Zend/zend_execute.c

Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2010-04-20 12:26:15 UTC (rev 298212)
+++ php/php-src/branches/PHP_5_3/NEWS   2010-04-20 12:30:35 UTC (rev 298213)
@@ -75,6 +75,7 @@
   (yoa...@gmail.com, Derick)
 - Fixed bug #48983 (DomDocument : saveHTMLFile wrong charset). (Rob)
 - Fixed bug #48902 (Timezone database fallback map is outdated). (Derick)
+- Fixed bug #48781 (Cyclical garbage collector memory leak). (Dmitry)
 - Fixed bug #46111 (Some timezone identifiers can not be parsed). (Derick)
 - Fixed bug #35673 (formatOutput does not work with saveHTML). (Rob)
 - Implement feature request #35638 (Adding udate to imap_fetch_overview 
results).

Modified: php/php-src/branches/PHP_5_3/Zend/zend_execute.c
===================================================================
--- php/php-src/branches/PHP_5_3/Zend/zend_execute.c    2010-04-20 12:26:15 UTC 
(rev 298212)
+++ php/php-src/branches/PHP_5_3/Zend/zend_execute.c    2010-04-20 12:30:35 UTC 
(rev 298213)
@@ -708,6 +708,7 @@
                                return variable_ptr;
                        }
                } else { /* we need to split */
+                       GC_ZVAL_CHECK_POSSIBLE_ROOT(*variable_ptr_ptr);
                        if (!is_tmp_var) {
                                if (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) 
> 0) {
                                        ALLOC_ZVAL(variable_ptr);

Modified: php/php-src/trunk/Zend/zend_execute.c
===================================================================
--- php/php-src/trunk/Zend/zend_execute.c       2010-04-20 12:26:15 UTC (rev 
298212)
+++ php/php-src/trunk/Zend/zend_execute.c       2010-04-20 12:30:35 UTC (rev 
298213)
@@ -848,6 +848,7 @@
                        zendi_zval_dtor(garbage);
                        return variable_ptr;
                } else { /* we need to split */
+               GC_ZVAL_CHECK_POSSIBLE_ROOT(variable_ptr);
                        ALLOC_ZVAL(variable_ptr);
                        INIT_PZVAL_COPY(variable_ptr, value);
                        *variable_ptr_ptr = variable_ptr;
@@ -901,6 +902,7 @@
                                return value;
                        }
                } else { /* we need to split */
+               GC_ZVAL_CHECK_POSSIBLE_ROOT(variable_ptr);
                        if (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0) {
                                ALLOC_ZVAL(variable_ptr);
                                INIT_PZVAL_COPY(variable_ptr, value);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to