You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2019-05-09.15:52:19.181>created_at=<Date2019-05-08.15:40:55.125>labels= ['interpreter-core', '3.8']
title='Frame stack is not cleaned after execution is finished with return'updated_at=<Date2019-05-13.15:31:20.580>user='https://github.com/pablogsal'
When evaluating a frame object, it is possible to exit the execution with some variables in the stack. The frame deallocator (frame_dealloc) only cleans the stack if f_stacktop is not NULL, but this only happens for generators and when trace functions are set. The eval loop does this cleanup already if an exception is being raised, but not if a RETURN_VALUE is set.
In the PyconUS sprints, Dino and I have been working on this and we have decided that the cleanest approach is shared the same goto label with the path for exception handling, effectively cleaning up
New changeset f00828a by Pablo Galindo in branch 'master': bpo-36851: Clean the frame stack if the execution ends with a return and the stack is not empty (GH-13191) f00828a
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: