Back to index

python3.2  3.2.2
Defines | Functions | Variables
_weakref.c File Reference
#include "Python.h"

Go to the source code of this file.

Defines

#define GET_WEAKREFS_LISTPTR(o)   ((PyWeakReference **) PyObject_GET_WEAKREFS_LISTPTR(o))

Functions

 PyDoc_STRVAR (weakref_getweakrefcount__doc__,"getweakrefcount(object) -- return the number of weak references\n""to 'object'.")
static PyObjectweakref_getweakrefcount (PyObject *self, PyObject *object)
 PyDoc_STRVAR (weakref_getweakrefs__doc__,"getweakrefs(object) -- return a list of all weak reference objects\n""that point to 'object'.")
static PyObjectweakref_getweakrefs (PyObject *self, PyObject *object)
 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 PyObjectweakref_proxy (PyObject *self, PyObject *args)
PyMODINIT_FUNC PyInit__weakref (void)

Variables

static PyMethodDef weakref_functions []
static struct PyModuleDef

Define Documentation

#define GET_WEAKREFS_LISTPTR (   o)    ((PyWeakReference **) PyObject_GET_WEAKREFS_LISTPTR(o))

Definition at line 4 of file _weakref.c.


Function Documentation

PyDoc_STRVAR ( weakref_getweakrefcount__doc__  ,
"getweakrefcount(object) -- return the number of weak references\n""to 'object'."   
)
PyDoc_STRVAR ( weakref_getweakrefs__doc__  ,
"getweakrefs(object) -- return a list of all weak reference objects\n""that point to 'object'."   
)
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."   
)

Definition at line 104 of file _weakref.c.

Here is the call graph for this function:

static PyObject* weakref_getweakrefcount ( PyObject self,
PyObject object 
) [static]

Definition at line 13 of file _weakref.c.

{
    PyObject *result = NULL;

    if (PyType_SUPPORTS_WEAKREFS(Py_TYPE(object))) {
        PyWeakReference **list = GET_WEAKREFS_LISTPTR(object);

        result = PyLong_FromSsize_t(_PyWeakref_GetWeakrefCount(*list));
    }
    else
        result = PyLong_FromLong(0);

    return result;
}

Here is the call graph for this function:

static PyObject* weakref_getweakrefs ( PyObject self,
PyObject object 
) [static]

Definition at line 34 of file _weakref.c.

{
    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;
}

Here is the call graph for this function:

static PyObject* weakref_proxy ( PyObject self,
PyObject args 
) [static]

Definition at line 66 of file _weakref.c.

{
    PyObject *object;
    PyObject *callback = NULL;
    PyObject *result = NULL;

    if (PyArg_UnpackTuple(args, "proxy", 1, 2, &object, &callback)) {
        result = PyWeakref_NewProxy(object, callback);
    }
    return result;
}

Here is the call graph for this function:


Variable Documentation

struct PyModuleDef [static]
Initial value:
 {
       PyModuleDef_HEAD_INIT,
       "_weakref",
       "Weak-reference support module.",
       -1,
       weakref_functions,
       NULL,
       NULL,
       NULL,
       NULL
}

Definition at line 91 of file _weakref.c.

Initial value:
  {
    {"getweakrefcount", weakref_getweakrefcount,        METH_O,
     weakref_getweakrefcount__doc__},
    {"getweakrefs",     weakref_getweakrefs,            METH_O,
     weakref_getweakrefs__doc__},
    {"proxy",           weakref_proxy,                  METH_VARARGS,
     weakref_proxy__doc__},
    {NULL, NULL, 0, NULL}
}

Definition at line 80 of file _weakref.c.