summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-05-10 14:20:22 (GMT)
committerGitHub <noreply@github.com>2024-05-10 14:20:22 (GMT)
commitbb5bf2422618506dca45912bd174d02b40b4113c (patch)
treeef3ac14e08283feaf1fb57fbb9e35743c1617c87 /Include
parent93fce2dcd5198fc742971e4aed0f023aa63c92fb (diff)
downloadcpython-bb5bf2422618506dca45912bd174d02b40b4113c.zip
cpython-bb5bf2422618506dca45912bd174d02b40b4113c.tar.gz
cpython-bb5bf2422618506dca45912bd174d02b40b4113c.tar.bz2
[3.13] gh-118789: Restore hidden `_PyWeakref_ClearRef` (GH-118797) (GH-118903)
gh-118789: Restore hidden `_PyWeakref_ClearRef` (GH-118797) _PyWeakref_ClearRef was previously exposed in the public C-API, although it begins with an underscore and is not documented. It's used by a few C-API extensions. There is currently no alternative public API that can replace its use. _PyWeakref_ClearWeakRefsExceptCallbacks is the only thread-safe way to use _PyWeakref_ClearRef in the free-threaded build. This exposes the C symbol, but does not make the API public. (cherry picked from commit db5af7da092409030c9fbe0a3a986bd0ee441b8b) Co-authored-by: Sam Gross <colesbury@gmail.com>
Diffstat (limited to 'Include')
-rw-r--r--Include/cpython/weakrefobject.h2
-rw-r--r--Include/internal/pycore_weakref.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/Include/cpython/weakrefobject.h b/Include/cpython/weakrefobject.h
index 9a79609..dcca166 100644
--- a/Include/cpython/weakrefobject.h
+++ b/Include/cpython/weakrefobject.h
@@ -40,6 +40,8 @@ struct _PyWeakReference {
#endif
};
+PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);
+
Py_DEPRECATED(3.13) static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj)
{
PyWeakReference *ref;
diff --git a/Include/internal/pycore_weakref.h b/Include/internal/pycore_weakref.h
index e057a27..cc6c7ff 100644
--- a/Include/internal/pycore_weakref.h
+++ b/Include/internal/pycore_weakref.h
@@ -111,8 +111,6 @@ extern Py_ssize_t _PyWeakref_GetWeakrefCount(PyObject *obj);
// intact.
extern void _PyWeakref_ClearWeakRefsExceptCallbacks(PyObject *obj);
-extern void _PyWeakref_ClearRef(PyWeakReference *self);
-
PyAPI_FUNC(int) _PyWeakref_IsDead(PyObject *weakref);
#ifdef __cplusplus