Skip to content

Commit cedd3ea

Browse files
committed
Fix zend_enum_new refcount api break
1 parent f77bef3 commit cedd3ea

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

Zend/zend_ast.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,9 @@ ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate(zval *result, zend_ast *ast
789789

790790
zend_class_entry *ce = zend_lookup_class(class_name);
791791
zend_enum_new(result, ce, case_name, case_value_zv_ptr);
792+
if (case_value_zv_ptr != NULL) {
793+
Z_TRY_DELREF_P(case_value_zv_ptr);
794+
}
792795
break;
793796
}
794797
case ZEND_AST_CLASS_CONST:

Zend/zend_enum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ zend_object *zend_enum_new(zval *result, zend_class_entry *ce, zend_string *case
4242

4343
ZVAL_STR_COPY(OBJ_PROP_NUM(zobj, 0), case_name);
4444
if (backing_value_zv != NULL) {
45-
ZVAL_COPY_VALUE(OBJ_PROP_NUM(zobj, 1), backing_value_zv);
45+
ZVAL_COPY(OBJ_PROP_NUM(zobj, 1), backing_value_zv);
4646
}
4747

4848
zobj->handlers = &enum_handlers;

0 commit comments

Comments
 (0)