File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -179,10 +179,11 @@ static void zend_generator_dtor_storage(zend_object *object) /* {{{ */
179
179
zend_generator * root = generator -> node .ptr .root , * next ;
180
180
while (UNEXPECTED (root != generator )) {
181
181
next = zend_generator_get_child (& root -> node , generator );
182
+ generator -> node .ptr .root = next ;
183
+ next -> node .parent = NULL ;
182
184
OBJ_RELEASE (& root -> std );
183
185
root = next ;
184
186
}
185
- generator -> node .parent = NULL ;
186
187
}
187
188
188
189
if (EXPECTED (!ex ) || EXPECTED (!(ex -> func -> op_array .fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK ))
@@ -664,11 +665,12 @@ ZEND_API zend_generator *zend_generator_update_current(zend_generator *generator
664
665
}
665
666
}
666
667
668
+ leaf -> node .ptr .root = root ;
667
669
if (old_root ) {
668
670
OBJ_RELEASE (& old_root -> std );
669
671
}
670
672
671
- return leaf -> node . ptr . root = root ;
673
+ return root ;
672
674
}
673
675
674
676
static int zend_generator_get_next_delegated_value (zend_generator * generator ) /* {{{ */
You can’t perform that action at this time.
0 commit comments