Lines Matching defs:proxy
216 * two callback-less refs (ref and proxy). Used to determine if the
284 PyWeakReference *ref, *proxy;
296 get_basic_refs(*list, &ref, &proxy);
307 proxy pointers we got back earlier may have been collected,
319 get_basic_refs(*list, &ref, &proxy);
320 prev = (proxy == NULL) ? ref : proxy;
392 proxy_checkref(PyWeakReference *proxy)
394 if (PyWeakref_GET_OBJECT(proxy) == Py_None) {
403 /* If a parameter is a proxy, check that it is still "live" and wrap it,
405 * if the param is a dead proxy.
423 method(PyObject *proxy) { \
424 UNWRAP(proxy); \
425 return generic(proxy); \
441 method(PyObject *proxy, PyObject *v, PyObject *w) { \
442 UNWRAP(proxy); \
446 return generic(proxy, v, w); \
451 method(PyObject *proxy) { \
452 UNWRAP(proxy); \
453 return PyObject_CallMethod(proxy, special, ""); \
464 proxy_repr(PyWeakReference *proxy)
468 "<weakproxy at %p to %.100s at %p>", proxy,
469 Py_TYPE(PyWeakref_GET_OBJECT(proxy))->tp_name,
470 PyWeakref_GET_OBJECT(proxy));
476 proxy_setattr(PyWeakReference *proxy, PyObject *name, PyObject *value)
478 if (!proxy_checkref(proxy))
480 return PyObject_SetAttr(PyWeakref_GET_OBJECT(proxy), name, value);
484 proxy_compare(PyObject *proxy, PyObject *v)
486 UNWRAP_I(proxy);
488 return PyObject_Compare(proxy, v);
529 proxy_nonzero(PyWeakReference *proxy)
531 PyObject *o = PyWeakref_GET_OBJECT(proxy);
532 if (!proxy_checkref(proxy))
549 proxy_slice(PyWeakReference *proxy, Py_ssize_t i, Py_ssize_t j)
551 if (!proxy_checkref(proxy))
553 return PySequence_GetSlice(PyWeakref_GET_OBJECT(proxy), i, j);
557 proxy_ass_slice(PyWeakReference *proxy, Py_ssize_t i, Py_ssize_t j, PyObject *value)
559 if (!proxy_checkref(proxy))
561 return PySequence_SetSlice(PyWeakref_GET_OBJECT(proxy), i, j, value);
565 proxy_contains(PyWeakReference *proxy, PyObject *value)
567 if (!proxy_checkref(proxy))
569 return PySequence_Contains(PyWeakref_GET_OBJECT(proxy), value);
576 proxy_length(PyWeakReference *proxy)
578 if (!proxy_checkref(proxy))
580 return PyObject_Length(PyWeakref_GET_OBJECT(proxy));
586 proxy_setitem(PyWeakReference *proxy, PyObject *key, PyObject *value)
588 if (!proxy_checkref(proxy))
592 return PyObject_DelItem(PyWeakref_GET_OBJECT(proxy), key);
594 return PyObject_SetItem(PyWeakref_GET_OBJECT(proxy), key, value);
600 proxy_iter(PyWeakReference *proxy)
602 if (!proxy_checkref(proxy))
604 return PyObject_GetIter(PyWeakref_GET_OBJECT(proxy));
608 proxy_iternext(PyWeakReference *proxy)
610 if (!proxy_checkref(proxy))
612 return PyIter_Next(PyWeakref_GET_OBJECT(proxy));
760 PyWeakReference *ref, *proxy;
769 get_basic_refs(*list, &ref, &proxy);
780 proxy pointers we got back earlier may have been collected,
785 get_basic_refs(*list, &ref, &proxy);
802 prev = (proxy == NULL) ? ref : proxy;
819 PyWeakReference *ref, *proxy;
828 get_basic_refs(*list, &ref, &proxy);
833 result = proxy;
839 proxy pointers we got back earlier may have been collected,
850 get_basic_refs(*list, &ref, &proxy);
852 if (proxy != NULL) {
853 /* Someone else added a proxy without a callback
858 Py_INCREF(result = proxy);
864 prev = (proxy == NULL) ? ref : proxy;
920 /* Remove the callback-less basic and proxy references */