diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2024-05-10 14:20:22 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-10 14:20:22 (GMT) |
commit | bb5bf2422618506dca45912bd174d02b40b4113c (patch) | |
tree | ef3ac14e08283feaf1fb57fbb9e35743c1617c87 /Include | |
parent | 93fce2dcd5198fc742971e4aed0f023aa63c92fb (diff) | |
download | cpython-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.h | 2 | ||||
-rw-r--r-- | Include/internal/pycore_weakref.h | 2 |
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 |