diff options
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r-- | Zend/zend_objects_API.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 104cda6141..b0e9d2f8a8 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -113,7 +113,10 @@ ZEND_API void ZEND_FASTCALL zend_objects_store_free_object_storage(zend_objects_ if (IS_OBJ_VALID(obj)) { if (!(OBJ_FLAGS(obj) & IS_OBJ_FREE_CALLED)) { GC_ADD_FLAGS(obj, IS_OBJ_FREE_CALLED); - GC_ADDREF(obj); + // FIXME: This causes constant objects to leak + if (!(obj->ce->ce_flags & ZEND_ACC_ENUM)) { + GC_ADDREF(obj); + } obj->handlers->free_obj(obj); } } |