To complement zend_string_release() and zend_object_release().
if (op_array->static_variables) {
HashTable *ht = ZEND_MAP_PTR_GET(op_array->static_variables_ptr);
if (ht) {
- if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && GC_DELREF(ht) == 0) {
- zend_array_destroy(ht);
- }
+ zend_array_release(ht);
ZEND_MAP_PTR_SET(op_array->static_variables_ptr, NULL);
}
}
}
}
+static zend_always_inline void zend_array_release(zend_array *array)
+{
+ if (!(GC_FLAGS(array) & IS_ARRAY_IMMUTABLE)) {
+ if (GC_DELREF(array) == 0) {
+ zend_array_destroy(array);
+ }
+ }
+}
END_EXTERN_C()