Skip to content

Conversation

@andersk
Copy link
Contributor

The owner field of _PyInterpreterFrame is supposed to be a member of enum _frameowner, but FRAME_CLEARED is a member of enum _framestate. Add FRAME_OWNED_BY_ACCIDENT to enum _frameowner and use that instead. (It happens to have the same numerical value, but we shouldn’t rely on that anywhere.)

The owner field of _PyInterpreterFrame is supposed to be a member of enum _frameowner, but FRAME_CLEARED is a member of enum _framestate. Add FRAME_OWNED_BY_ACCIDENT to enum _frameowner and use that instead. (It happens to have the same numerical value, but we shouldn’t rely on that anywhere.) Signed-off-by: Anders Kaseorg <andersk@mit.edu>
@anderskanderskforce-pushed the frame-enum-confusion branch from 1fc0752 to b3a6775CompareMarch 3, 2024 19:15
FRAME_OWNED_BY_GENERATOR=1,
FRAME_OWNED_BY_FRAME_OBJECT=2,
FRAME_OWNED_BY_CSTACK=3,
FRAME_OWNED_BY_ACCIDENT=4,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you should add a NEWS describing that you added a new value to the enum_frameowner enumeration in pycore_frame.h.

I think that making modifications to the interpreter core requires adding.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not part of the public API; it’s an internal fix that has no direct relevance to Python users or extension authors.

However, the surrounding code has changed, so I’m closing this in favor of

@anderskandersk closed this Sep 16, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@andersk@rruuaanng@bedevere-bot