summaryrefslogtreecommitdiff
path: root/Zend/zend_objects_API.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r--Zend/zend_objects_API.c5
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);
}
}