aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2023-10-10-00-49-35.gh-issue-104584.z94TuJ.rst1
-rw-r--r--Objects/funcobject.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-10-10-00-49-35.gh-issue-104584.z94TuJ.rst b/Misc/NEWS.d/next/Core and Builtins/2023-10-10-00-49-35.gh-issue-104584.z94TuJ.rst
new file mode 100644
index 00000000000..5164c73aad1
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-10-10-00-49-35.gh-issue-104584.z94TuJ.rst
@@ -0,0 +1 @@
+Fix a reference leak when running with :envvar:`PYTHONUOPS` or :option:`-X uops <-X>` enabled.
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 231a9c141d0..e8ad486150d 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -288,7 +288,7 @@ _PyFunction_LookupByVersion(uint32_t version)
PyFunctionObject *func = interp->func_state.func_version_cache[
version % FUNC_VERSION_CACHE_SIZE];
if (func != NULL && func->func_version == version) {
- return (PyFunctionObject *)Py_NewRef(func);
+ return func;
}
return NULL;
}