gh-105927: PyWeakref_GetRef() returns 1 on success (#106561)
PyWeakref_GetRef() now returns 1 on success, and return 0 if the reference is dead. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
1e12c8cfa3
commit
ee46cb6aa9
@ -55,9 +55,11 @@ as much as it can.
|
|||||||
|
|
||||||
Get a :term:`strong reference` to the referenced object from a weak
|
Get a :term:`strong reference` to the referenced object from a weak
|
||||||
reference, *ref*, into *\*pobj*.
|
reference, *ref*, into *\*pobj*.
|
||||||
Return 0 on success. Raise an exception and return -1 on error.
|
|
||||||
|
|
||||||
If the referent is no longer live, set *\*pobj* to ``NULL`` and return 0.
|
* On success, set *\*pobj* to a new :term:`strong reference` to the
|
||||||
|
referenced object and return 1.
|
||||||
|
* If the reference is dead, set *\*pobj* to ``NULL`` and return 0.
|
||||||
|
* On error, raise an exception and return -1.
|
||||||
|
|
||||||
.. versionadded:: 3.13
|
.. versionadded:: 3.13
|
||||||
|
|
||||||
|
@ -3376,7 +3376,7 @@ test_weakref_capi(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))
|
|||||||
|
|
||||||
// test PyWeakref_GetRef(), reference is alive
|
// test PyWeakref_GetRef(), reference is alive
|
||||||
PyObject *ref = Py_True; // marker to check that value was set
|
PyObject *ref = Py_True; // marker to check that value was set
|
||||||
assert(PyWeakref_GetRef(weakref, &ref) == 0);
|
assert(PyWeakref_GetRef(weakref, &ref) == 1);
|
||||||
assert(ref == obj);
|
assert(ref == obj);
|
||||||
assert(Py_REFCNT(obj) == (refcnt + 1));
|
assert(Py_REFCNT(obj) == (refcnt + 1));
|
||||||
Py_DECREF(ref);
|
Py_DECREF(ref);
|
||||||
|
@ -913,7 +913,7 @@ PyWeakref_GetRef(PyObject *ref, PyObject **pobj)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
*pobj = _PyWeakref_GET_REF(ref);
|
*pobj = _PyWeakref_GET_REF(ref);
|
||||||
return 0;
|
return (*pobj != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user