]> granicus.if.org Git - php/commitdiff
Fixed GC bug
authorDmitry Stogov <dmitry@zend.com>
Tue, 22 Jul 2014 14:39:58 +0000 (18:39 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 22 Jul 2014 14:39:58 +0000 (18:39 +0400)
Zend/zend_variables.c

index b512c45672fa42d8d0c676d940e78d9c14490317..9f76d9f81244da55a4d9b4626995e56fc03699ca 100644 (file)
@@ -44,8 +44,8 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC)
                                if (arr != &EG(symbol_table)) {
                                        /* break possible cycles */
                                        GC_TYPE(arr) = IS_NULL;
-                                       zend_hash_destroy(&arr->ht);
                                        GC_REMOVE_FROM_BUFFER(arr);
+                                       zend_hash_destroy(&arr->ht);
                                        efree(arr);
                                }
                                break;
@@ -104,8 +104,8 @@ ZEND_API void _zval_dtor_func_for_ptr(zend_refcounted *p ZEND_FILE_LINE_DC)
                                if (arr != &EG(symbol_table)) {
                                        /* break possible cycles */
                                        GC_TYPE(arr) = IS_NULL;
-                                       zend_hash_destroy(&arr->ht);
                                        GC_REMOVE_FROM_BUFFER(arr);
+                                       zend_hash_destroy(&arr->ht);
                                        efree(arr);
                                }
                                break;