summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Modules/_weakref.c
diff options
context:
space:
mode:
authororivej <[email protected]>2022-02-10 16:44:49 +0300
committerDaniil Cherednik <[email protected]>2022-02-10 16:44:49 +0300
commit718c552901d703c502ccbefdfc3c9028d608b947 (patch)
tree46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/tools/python3/src/Modules/_weakref.c
parente9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff)
Restoring authorship annotation for <[email protected]>. Commit 1 of 2.
Diffstat (limited to 'contrib/tools/python3/src/Modules/_weakref.c')
-rw-r--r--contrib/tools/python3/src/Modules/_weakref.c304
1 files changed, 152 insertions, 152 deletions
diff --git a/contrib/tools/python3/src/Modules/_weakref.c b/contrib/tools/python3/src/Modules/_weakref.c
index e33cba2a3dd..0ffe420bff9 100644
--- a/contrib/tools/python3/src/Modules/_weakref.c
+++ b/contrib/tools/python3/src/Modules/_weakref.c
@@ -1,142 +1,142 @@
-#include "Python.h"
+#include "Python.h"
#include "pycore_object.h" // _PyObject_GET_WEAKREFS_LISTPTR
-
-
-#define GET_WEAKREFS_LISTPTR(o) \
+
+
+#define GET_WEAKREFS_LISTPTR(o) \
((PyWeakReference **) _PyObject_GET_WEAKREFS_LISTPTR(o))
-
-/*[clinic input]
-module _weakref
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ffec73b85846596d]*/
-
-#include "clinic/_weakref.c.h"
-
-/*[clinic input]
-
-_weakref.getweakrefcount -> Py_ssize_t
-
- object: object
- /
-
-Return the number of weak references to 'object'.
-[clinic start generated code]*/
-
-static Py_ssize_t
-_weakref_getweakrefcount_impl(PyObject *module, PyObject *object)
-/*[clinic end generated code: output=301806d59558ff3e input=cedb69711b6a2507]*/
-{
- PyWeakReference **list;
-
- if (!PyType_SUPPORTS_WEAKREFS(Py_TYPE(object)))
- return 0;
-
- list = GET_WEAKREFS_LISTPTR(object);
- return _PyWeakref_GetWeakrefCount(*list);
-}
-
-
-static int
-is_dead_weakref(PyObject *value)
-{
- if (!PyWeakref_Check(value)) {
- PyErr_SetString(PyExc_TypeError, "not a weakref");
- return -1;
- }
- return PyWeakref_GET_OBJECT(value) == Py_None;
-}
-
-/*[clinic input]
-
-_weakref._remove_dead_weakref -> object
-
- dct: object(subclass_of='&PyDict_Type')
- key: object
- /
-
-Atomically remove key from dict if it points to a dead weakref.
-[clinic start generated code]*/
-
-static PyObject *
-_weakref__remove_dead_weakref_impl(PyObject *module, PyObject *dct,
- PyObject *key)
-/*[clinic end generated code: output=d9ff53061fcb875c input=19fc91f257f96a1d]*/
-{
- if (_PyDict_DelItemIf(dct, key, is_dead_weakref) < 0) {
- if (PyErr_ExceptionMatches(PyExc_KeyError))
- /* This function is meant to allow safe weak-value dicts
- with GC in another thread (see issue #28427), so it's
- ok if the key doesn't exist anymore.
- */
- PyErr_Clear();
- else
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-
-PyDoc_STRVAR(weakref_getweakrefs__doc__,
-"getweakrefs(object) -- return a list of all weak reference objects\n"
-"that point to 'object'.");
-
-static PyObject *
-weakref_getweakrefs(PyObject *self, PyObject *object)
-{
- PyObject *result = NULL;
-
- if (PyType_SUPPORTS_WEAKREFS(Py_TYPE(object))) {
- PyWeakReference **list = GET_WEAKREFS_LISTPTR(object);
- Py_ssize_t count = _PyWeakref_GetWeakrefCount(*list);
-
- result = PyList_New(count);
- if (result != NULL) {
- PyWeakReference *current = *list;
- Py_ssize_t i;
- for (i = 0; i < count; ++i) {
- PyList_SET_ITEM(result, i, (PyObject *) current);
- Py_INCREF(current);
- current = current->wr_next;
- }
- }
- }
- else {
- result = PyList_New(0);
- }
- return result;
-}
-
-
-PyDoc_STRVAR(weakref_proxy__doc__,
-"proxy(object[, callback]) -- create a proxy object that weakly\n"
-"references 'object'. 'callback', if given, is called with a\n"
-"reference to the proxy when 'object' is about to be finalized.");
-
-static PyObject *
-weakref_proxy(PyObject *self, PyObject *args)
-{
- PyObject *object;
- PyObject *callback = NULL;
- PyObject *result = NULL;
-
- if (PyArg_UnpackTuple(args, "proxy", 1, 2, &object, &callback)) {
- result = PyWeakref_NewProxy(object, callback);
- }
- return result;
-}
-
-
-static PyMethodDef
-weakref_functions[] = {
- _WEAKREF_GETWEAKREFCOUNT_METHODDEF
- _WEAKREF__REMOVE_DEAD_WEAKREF_METHODDEF
- {"getweakrefs", weakref_getweakrefs, METH_O,
- weakref_getweakrefs__doc__},
- {"proxy", weakref_proxy, METH_VARARGS,
- weakref_proxy__doc__},
- {NULL, NULL, 0, NULL}
-};
-
+
+/*[clinic input]
+module _weakref
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ffec73b85846596d]*/
+
+#include "clinic/_weakref.c.h"
+
+/*[clinic input]
+
+_weakref.getweakrefcount -> Py_ssize_t
+
+ object: object
+ /
+
+Return the number of weak references to 'object'.
+[clinic start generated code]*/
+
+static Py_ssize_t
+_weakref_getweakrefcount_impl(PyObject *module, PyObject *object)
+/*[clinic end generated code: output=301806d59558ff3e input=cedb69711b6a2507]*/
+{
+ PyWeakReference **list;
+
+ if (!PyType_SUPPORTS_WEAKREFS(Py_TYPE(object)))
+ return 0;
+
+ list = GET_WEAKREFS_LISTPTR(object);
+ return _PyWeakref_GetWeakrefCount(*list);
+}
+
+
+static int
+is_dead_weakref(PyObject *value)
+{
+ if (!PyWeakref_Check(value)) {
+ PyErr_SetString(PyExc_TypeError, "not a weakref");
+ return -1;
+ }
+ return PyWeakref_GET_OBJECT(value) == Py_None;
+}
+
+/*[clinic input]
+
+_weakref._remove_dead_weakref -> object
+
+ dct: object(subclass_of='&PyDict_Type')
+ key: object
+ /
+
+Atomically remove key from dict if it points to a dead weakref.
+[clinic start generated code]*/
+
+static PyObject *
+_weakref__remove_dead_weakref_impl(PyObject *module, PyObject *dct,
+ PyObject *key)
+/*[clinic end generated code: output=d9ff53061fcb875c input=19fc91f257f96a1d]*/
+{
+ if (_PyDict_DelItemIf(dct, key, is_dead_weakref) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_KeyError))
+ /* This function is meant to allow safe weak-value dicts
+ with GC in another thread (see issue #28427), so it's
+ ok if the key doesn't exist anymore.
+ */
+ PyErr_Clear();
+ else
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+
+PyDoc_STRVAR(weakref_getweakrefs__doc__,
+"getweakrefs(object) -- return a list of all weak reference objects\n"
+"that point to 'object'.");
+
+static PyObject *
+weakref_getweakrefs(PyObject *self, PyObject *object)
+{
+ PyObject *result = NULL;
+
+ if (PyType_SUPPORTS_WEAKREFS(Py_TYPE(object))) {
+ PyWeakReference **list = GET_WEAKREFS_LISTPTR(object);
+ Py_ssize_t count = _PyWeakref_GetWeakrefCount(*list);
+
+ result = PyList_New(count);
+ if (result != NULL) {
+ PyWeakReference *current = *list;
+ Py_ssize_t i;
+ for (i = 0; i < count; ++i) {
+ PyList_SET_ITEM(result, i, (PyObject *) current);
+ Py_INCREF(current);
+ current = current->wr_next;
+ }
+ }
+ }
+ else {
+ result = PyList_New(0);
+ }
+ return result;
+}
+
+
+PyDoc_STRVAR(weakref_proxy__doc__,
+"proxy(object[, callback]) -- create a proxy object that weakly\n"
+"references 'object'. 'callback', if given, is called with a\n"
+"reference to the proxy when 'object' is about to be finalized.");
+
+static PyObject *
+weakref_proxy(PyObject *self, PyObject *args)
+{
+ PyObject *object;
+ PyObject *callback = NULL;
+ PyObject *result = NULL;
+
+ if (PyArg_UnpackTuple(args, "proxy", 1, 2, &object, &callback)) {
+ result = PyWeakref_NewProxy(object, callback);
+ }
+ return result;
+}
+
+
+static PyMethodDef
+weakref_functions[] = {
+ _WEAKREF_GETWEAKREFCOUNT_METHODDEF
+ _WEAKREF__REMOVE_DEAD_WEAKREF_METHODDEF
+ {"getweakrefs", weakref_getweakrefs, METH_O,
+ weakref_getweakrefs__doc__},
+ {"proxy", weakref_proxy, METH_VARARGS,
+ weakref_proxy__doc__},
+ {NULL, NULL, 0, NULL}
+};
+
static int
weakref_exec(PyObject *module)
{
@@ -163,7 +163,7 @@ weakref_exec(PyObject *module)
Py_DECREF(&_PyWeakref_CallableProxyType);
return -1;
}
-
+
return 0;
}
@@ -172,20 +172,20 @@ static struct PyModuleDef_Slot weakref_slots[] = {
{0, NULL}
};
-static struct PyModuleDef weakrefmodule = {
- PyModuleDef_HEAD_INIT,
- "_weakref",
- "Weak-reference support module.",
+static struct PyModuleDef weakrefmodule = {
+ PyModuleDef_HEAD_INIT,
+ "_weakref",
+ "Weak-reference support module.",
0,
- weakref_functions,
+ weakref_functions,
weakref_slots,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit__weakref(void)
-{
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC
+PyInit__weakref(void)
+{
return PyModuleDef_Init(&weakrefmodule);
-}
+}