Uh oh!
There was an error while loading. Please reload this page.
gh-134584: Eliminate redundant refcounting from _CALL_TUPLE_1 - #135860
Conversation
f99ffdd to
c7c4873CompareFidget-Spinner
commented
Jun 23, 2025
Nice! That was fast. This PR LGTM, but we need to wait will Mark merges his register allocation PR to get the benefits of this work. See my other comment here #135818 (comment) |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Fidget-Spinner
commented
Dec 11, 2025
Cool. I see an ~5% improvement in this code: Considering only one reference count was eliminated, this is good news for everything else that will remove more! |
Fidget-Spinner
commented
Dec 11, 2025
@markshannon sorry can you please check if this is correct? I think the ERROR_IF might be misplaced, sorry! |
Fidget-Spinner
commented
Dec 11, 2025
the generated code looks correct but I wonder if the C analyzer treats it any differently |
So this seems to be the case. If you look at the error case, it leaks a reference on exit, as it doesn't decref/close it. Sorry I have to revert this PR, or provide a fix. So sorry again! |
markshannon
commented
Dec 12, 2025
Yes, this leaks |
vstinner
commented
Dec 12, 2025
I confirm that this change introduced a memory leak in the following tests: Example AMD64 Fedora Stable Refleaks 3.x: https://buildbot.python.org/#/builders/320/builds/3425 |
vstinner
commented
Dec 12, 2025
@Fidget-Spinner wrote #142604 to fix the leak. |
noamcohen97
commented
Dec 12, 2025
Sorry about that! Thanks @Fidget-Spinner 🙏 |
vstinner
commented
Dec 12, 2025
He wrote another change to fix the leak: #142620. |
Uh oh!
There was an error while loading. Please reload this page.