123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /*[clinic input]
- preserve
- [clinic start generated code]*/
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- # include "pycore_gc.h" // PyGC_Head
- # include "pycore_runtime.h" // _Py_ID()
- #endif
- PyDoc_STRVAR(_weakref_getweakrefcount__doc__,
- "getweakrefcount($module, object, /)\n"
- "--\n"
- "\n"
- "Return the number of weak references to \'object\'.");
- #define _WEAKREF_GETWEAKREFCOUNT_METHODDEF \
- {"getweakrefcount", (PyCFunction)_weakref_getweakrefcount, METH_O, _weakref_getweakrefcount__doc__},
- static Py_ssize_t
- _weakref_getweakrefcount_impl(PyObject *module, PyObject *object);
- static PyObject *
- _weakref_getweakrefcount(PyObject *module, PyObject *object)
- {
- PyObject *return_value = NULL;
- Py_ssize_t _return_value;
- _return_value = _weakref_getweakrefcount_impl(module, object);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSsize_t(_return_value);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_weakref__remove_dead_weakref__doc__,
- "_remove_dead_weakref($module, dct, key, /)\n"
- "--\n"
- "\n"
- "Atomically remove key from dict if it points to a dead weakref.");
- #define _WEAKREF__REMOVE_DEAD_WEAKREF_METHODDEF \
- {"_remove_dead_weakref", _PyCFunction_CAST(_weakref__remove_dead_weakref), METH_FASTCALL, _weakref__remove_dead_weakref__doc__},
- static PyObject *
- _weakref__remove_dead_weakref_impl(PyObject *module, PyObject *dct,
- PyObject *key);
- static PyObject *
- _weakref__remove_dead_weakref(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
- {
- PyObject *return_value = NULL;
- PyObject *dct;
- PyObject *key;
- if (!_PyArg_CheckPositional("_remove_dead_weakref", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyDict_Check(args[0])) {
- _PyArg_BadArgument("_remove_dead_weakref", "argument 1", "dict", args[0]);
- goto exit;
- }
- dct = args[0];
- key = args[1];
- return_value = _weakref__remove_dead_weakref_impl(module, dct, key);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_weakref_getweakrefs__doc__,
- "getweakrefs($module, object, /)\n"
- "--\n"
- "\n"
- "Return a list of all weak reference objects pointing to \'object\'.");
- #define _WEAKREF_GETWEAKREFS_METHODDEF \
- {"getweakrefs", (PyCFunction)_weakref_getweakrefs, METH_O, _weakref_getweakrefs__doc__},
- PyDoc_STRVAR(_weakref_proxy__doc__,
- "proxy($module, object, callback=None, /)\n"
- "--\n"
- "\n"
- "Create a proxy object that weakly references \'object\'.\n"
- "\n"
- "\'callback\', if given, is called with a reference to the\n"
- "proxy when \'object\' is about to be finalized.");
- #define _WEAKREF_PROXY_METHODDEF \
- {"proxy", _PyCFunction_CAST(_weakref_proxy), METH_FASTCALL, _weakref_proxy__doc__},
- static PyObject *
- _weakref_proxy_impl(PyObject *module, PyObject *object, PyObject *callback);
- static PyObject *
- _weakref_proxy(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
- {
- PyObject *return_value = NULL;
- PyObject *object;
- PyObject *callback = NULL;
- if (!_PyArg_CheckPositional("proxy", nargs, 1, 2)) {
- goto exit;
- }
- object = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- callback = args[1];
- skip_optional:
- return_value = _weakref_proxy_impl(module, object, callback);
- exit:
- return return_value;
- }
- /*[clinic end generated code: output=28265e89d583273d input=a9049054013a1b77]*/
|