Skip to content

Commit 0445974

Browse files
committed
Only backup vm_stack* if generator->stack has not been freed
1 parent 2387771 commit 0445974

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Zend/zend_generators.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -322,13 +322,14 @@ ZEND_API void zend_generator_resume(zend_generator *generator) /* {{{ */
322322
zend_execute_ex(generator->execute_data);
323323
generator->flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING;
324324

325-
/* Unlink generator call_frame from the caller */
325+
/* Unlink generator call_frame from the caller and backup vm_stack_top */
326326
if (generator->execute_data) {
327+
generator->stack = EG(vm_stack);
328+
generator->stack->top = EG(vm_stack_top);
327329
generator->execute_data->prev_execute_data = NULL;
328330
}
329331

330332
/* Restore executor globals */
331-
generator->stack->top = EG(vm_stack_top);
332333
EG(current_execute_data) = original_execute_data;
333334
EG(scope) = original_scope;
334335
EG(vm_stack_top) = original_stack->top;

0 commit comments

Comments
 (0)