@@ -342,9 +342,6 @@ static void ZEND_STACK_ALIGNED zend_fiber_execute(zend_fiber_context *context)
342
342
343
343
fiber -> fci .retval = & fiber -> value ;
344
344
345
- // Reference added while running, removed when suspended, and added again once resumed.
346
- GC_ADDREF (& fiber -> std );
347
-
348
345
fiber -> status = ZEND_FIBER_STATUS_RUNNING ;
349
346
350
347
zend_call_function (& fiber -> fci , & fiber -> fci_cache );
@@ -367,9 +364,6 @@ static void ZEND_STACK_ALIGNED zend_fiber_execute(zend_fiber_context *context)
367
364
368
365
zend_vm_stack_destroy ();
369
366
fiber -> execute_data = NULL ;
370
-
371
- // Remove reference added at last resume.
372
- GC_DELREF (& fiber -> std );
373
367
}
374
368
375
369
static zend_object * zend_fiber_object_create (zend_class_entry * ce )
@@ -394,8 +388,6 @@ static void zend_fiber_object_destroy(zend_object *object)
394
388
EG (exception ) = NULL ;
395
389
396
390
fiber -> status = ZEND_FIBER_STATUS_SHUTDOWN ;
397
- // Additional reference needed while running, removed in zend_fiber_execute.
398
- GC_ADDREF (& fiber -> std );
399
391
400
392
zend_fiber_switch_to (fiber );
401
393
@@ -497,9 +489,6 @@ ZEND_METHOD(Fiber, suspend)
497
489
fiber -> execute_data = execute_data ;
498
490
fiber -> status = ZEND_FIBER_STATUS_SUSPENDED ;
499
491
500
- // Remove running reference while suspended.
501
- GC_DELREF (& fiber -> std );
502
-
503
492
zend_fiber_suspend (fiber );
504
493
505
494
if (fiber -> status == ZEND_FIBER_STATUS_SHUTDOWN ) {
@@ -515,8 +504,6 @@ ZEND_METHOD(Fiber, suspend)
515
504
}
516
505
517
506
fiber -> status = ZEND_FIBER_STATUS_RUNNING ;
518
- // Add reference while fiber is running.
519
- GC_ADDREF (& fiber -> std );
520
507
521
508
if (fiber -> exception ) {
522
509
exception = fiber -> exception ;
0 commit comments