@@ -2727,6 +2727,10 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_
2727
2727
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
2728
2728
ZVAL_COPY_VALUE(return_value, retval_ptr);
2729
2729
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
2730
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
2731
+ if (GC_MAY_LEAK(ref)) {
2732
+ gc_possible_root(ref);
2733
+ }
2730
2734
ZVAL_NULL(retval_ptr);
2731
2735
} else {
2732
2736
Z_ADDREF_P(return_value);
@@ -17665,6 +17669,10 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HA
17665
17669
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
17666
17670
ZVAL_COPY_VALUE(return_value, retval_ptr);
17667
17671
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
17672
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
17673
+ if (GC_MAY_LEAK(ref)) {
17674
+ gc_possible_root(ref);
17675
+ }
17668
17676
ZVAL_NULL(retval_ptr);
17669
17677
} else {
17670
17678
Z_ADDREF_P(return_value);
@@ -20433,6 +20441,10 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HA
20433
20441
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
20434
20442
ZVAL_COPY_VALUE(return_value, retval_ptr);
20435
20443
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
20444
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
20445
+ if (GC_MAY_LEAK(ref)) {
20446
+ gc_possible_root(ref);
20447
+ }
20436
20448
ZVAL_NULL(retval_ptr);
20437
20449
} else {
20438
20450
Z_ADDREF_P(return_value);
@@ -36875,6 +36887,10 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HAN
36875
36887
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
36876
36888
ZVAL_COPY_VALUE(return_value, retval_ptr);
36877
36889
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
36890
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
36891
+ if (GC_MAY_LEAK(ref)) {
36892
+ gc_possible_root(ref);
36893
+ }
36878
36894
ZVAL_NULL(retval_ptr);
36879
36895
} else {
36880
36896
Z_ADDREF_P(return_value);
@@ -55714,6 +55730,10 @@ ZEND_API void execute_ex(zend_execute_data *ex)
55714
55730
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
55715
55731
ZVAL_COPY_VALUE(return_value, retval_ptr);
55716
55732
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
55733
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
55734
+ if (GC_MAY_LEAK(ref)) {
55735
+ gc_possible_root(ref);
55736
+ }
55717
55737
ZVAL_NULL(retval_ptr);
55718
55738
} else {
55719
55739
Z_ADDREF_P(return_value);
@@ -57328,6 +57348,10 @@ ZEND_API void execute_ex(zend_execute_data *ex)
57328
57348
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
57329
57349
ZVAL_COPY_VALUE(return_value, retval_ptr);
57330
57350
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
57351
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
57352
+ if (GC_MAY_LEAK(ref)) {
57353
+ gc_possible_root(ref);
57354
+ }
57331
57355
ZVAL_NULL(retval_ptr);
57332
57356
} else {
57333
57357
Z_ADDREF_P(return_value);
@@ -57614,6 +57638,10 @@ ZEND_API void execute_ex(zend_execute_data *ex)
57614
57638
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
57615
57639
ZVAL_COPY_VALUE(return_value, retval_ptr);
57616
57640
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
57641
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
57642
+ if (GC_MAY_LEAK(ref)) {
57643
+ gc_possible_root(ref);
57644
+ }
57617
57645
ZVAL_NULL(retval_ptr);
57618
57646
} else {
57619
57647
Z_ADDREF_P(return_value);
@@ -59256,6 +59284,10 @@ ZEND_API void execute_ex(zend_execute_data *ex)
59256
59284
if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) {
59257
59285
ZVAL_COPY_VALUE(return_value, retval_ptr);
59258
59286
if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) {
59287
+ zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
59288
+ if (GC_MAY_LEAK(ref)) {
59289
+ gc_possible_root(ref);
59290
+ }
59259
59291
ZVAL_NULL(retval_ptr);
59260
59292
} else {
59261
59293
Z_ADDREF_P(return_value);
0 commit comments