diff options
-rw-r--r-- | Zend/zend_execute_API.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 4277df1a1f..f2881f7054 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -287,8 +287,9 @@ void shutdown_executor(void) /* {{{ */ if (op_array->static_variables) { HashTable *ht = ZEND_MAP_PTR_GET(op_array->static_variables_ptr); if (ht) { - ZEND_ASSERT(GC_REFCOUNT(ht) == 1); - zend_array_destroy(ht); + if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && GC_DELREF(ht) == 0) { + zend_array_destroy(ht); + } ZEND_MAP_PTR_SET(op_array->static_variables_ptr, NULL); } } |