Skip to content

Conversation

picnixz
Copy link
Member

@picnixz picnixz commented Sep 3, 2025

This commit fixes possible reference loops via panel.set_userptr by implementing tp_clear and tp_traverse for panel objects. (cherry picked from commit 572df47)

…l.panel` (pythonGH-138333)

This commit fixes possible reference loops via `panel.set_userptr`
by implementing `tp_clear` and `tp_traverse` for panel objects.
(cherry picked from commit 572df47)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Copy link
Member

@serhiy-storchaka serhiy-storchaka left a comment

Choose a reason for hiding this comment

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

LGTM. 👍

{
PyCursesPanelObject *po = PyObject_New(PyCursesPanelObject,
state->PyCursesPanel_Type);
assert(state != NULL);
Copy link
Member

Choose a reason for hiding this comment

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

These asserts are redundant. Dereferencing a NULL pointer has a similar effect to a failed assert.

Copy link
Member Author

Choose a reason for hiding this comment

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

I actually added those asserts for debugging purposes. Since they are on main, I think it's better to reduce the diff.

@hugovk hugovk merged commit 9cc2b25 into python:3.14 Sep 6, 2025
52 checks passed
@picnixz picnixz deleted the backport-572df47-3.14 branch September 6, 2025 18:37
kumaraditya303 pushed a commit to miss-islington/cpython that referenced this pull request Sep 9, 2025
Sign up for free to 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