Fixed GC bug

This commit is contained in:
Dmitry Stogov 2014-07-22 18:39:58 +04:00
parent 5fe7f799e0
commit f81956cb3e

View File

@ -44,8 +44,8 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC)
if (arr != &EG(symbol_table)) { if (arr != &EG(symbol_table)) {
/* break possible cycles */ /* break possible cycles */
GC_TYPE(arr) = IS_NULL; GC_TYPE(arr) = IS_NULL;
zend_hash_destroy(&arr->ht);
GC_REMOVE_FROM_BUFFER(arr); GC_REMOVE_FROM_BUFFER(arr);
zend_hash_destroy(&arr->ht);
efree(arr); efree(arr);
} }
break; 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)) { if (arr != &EG(symbol_table)) {
/* break possible cycles */ /* break possible cycles */
GC_TYPE(arr) = IS_NULL; GC_TYPE(arr) = IS_NULL;
zend_hash_destroy(&arr->ht);
GC_REMOVE_FROM_BUFFER(arr); GC_REMOVE_FROM_BUFFER(arr);
zend_hash_destroy(&arr->ht);
efree(arr); efree(arr);
} }
break; break;