diff --git a/Zend/tests/class_constants_007.phpt b/Zend/tests/class_constants_007.phpt new file mode 100644 index 00000000000..d09a12e8c17 --- /dev/null +++ b/Zend/tests/class_constants_007.phpt @@ -0,0 +1,13 @@ +--TEST-- +Ownership of constant expression inhereted from immutable class should be transfered to class +--FILE-- + +--EXPECT-- +string(2) " " diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 2d997097578..6b168a8b411 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -1385,6 +1385,7 @@ static void do_inherit_class_constant(zend_string *name, zend_class_constant *pa c = zend_arena_alloc(&CG(arena), sizeof(zend_class_constant)); memcpy(c, parent_const, sizeof(zend_class_constant)); parent_const = c; + Z_CONSTANT_FLAGS(c->value) |= CONST_OWNED; } } if (ce->type & ZEND_INTERNAL_CLASS) {