static Py_ssize_t proxy_length(PyWeakReference *proxy) { if (!proxy_checkref(proxy)) return -1; return PyObject_Length(PyWeakref_GET_OBJECT(proxy)); }
static int proxy_contains(PyWeakReference *proxy, PyObject *value) { if (!proxy_checkref(proxy)) return -1; return PySequence_Contains(PyWeakref_GET_OBJECT(proxy), value); }
static int proxy_ass_slice(PyWeakReference *proxy, Py_ssize_t i, Py_ssize_t j, PyObject *value) { if (!proxy_checkref(proxy)) return -1; return PySequence_SetSlice(PyWeakref_GET_OBJECT(proxy), i, j, value); }
static PyObject * proxy_slice(PyWeakReference *proxy, Py_ssize_t i, Py_ssize_t j) { if (!proxy_checkref(proxy)) return NULL; return PySequence_GetSlice(PyWeakref_GET_OBJECT(proxy), i, j); }
static int proxy_setattr(PyWeakReference *proxy, PyObject *name, PyObject *value) { if (!proxy_checkref(proxy)) return -1; return PyObject_SetAttr(PyWeakref_GET_OBJECT(proxy), name, value); }
static int proxy_nonzero(PyWeakReference *proxy) { PyObject *o = PyWeakref_GET_OBJECT(proxy); if (!proxy_checkref(proxy)) return -1; return PyObject_IsTrue(o); }
static int proxy_setitem(PyWeakReference *proxy, PyObject *key, PyObject *value) { if (!proxy_checkref(proxy)) return -1; if (value == NULL) return PyObject_DelItem(PyWeakref_GET_OBJECT(proxy), key); else return PyObject_SetItem(PyWeakref_GET_OBJECT(proxy), key, value); }
static int proxy_nonzero(PyWeakReference *proxy) { PyObject *o = PyWeakref_GET_OBJECT(proxy); if (!proxy_checkref(proxy)) return -1; if (o->ob_type->tp_as_number && o->ob_type->tp_as_number->nb_nonzero) return (*o->ob_type->tp_as_number->nb_nonzero)(o); else return 1; }