Lines Matching refs:proxy
215 * two callback-less refs (ref and proxy). Used to determine if the
283 PyWeakReference *ref, *proxy;
295 get_basic_refs(*list, &ref, &proxy);
306 proxy pointers we got back earlier may have been collected,
318 get_basic_refs(*list, &ref, &proxy);
319 prev = (proxy == NULL) ? ref : proxy;
396 proxy_checkref(PyWeakReference *proxy)
398 if (PyWeakref_GET_OBJECT(proxy) == Py_None) {
407 /* If a parameter is a proxy, check that it is still "live" and wrap it,
409 * if the param is a dead proxy.
427 method(PyObject *proxy) { \
428 UNWRAP(proxy); \
429 return generic(proxy); \
445 method(PyObject *proxy, PyObject *v, PyObject *w) { \
446 UNWRAP(proxy); \
450 return generic(proxy, v, w); \
455 method(PyObject *proxy) { \
457 UNWRAP(proxy); \
458 return _PyObject_CallMethodId(proxy, &PyId_##special, NULL); \
469 proxy_repr(PyWeakReference *proxy)
473 proxy,
474 Py_TYPE(PyWeakref_GET_OBJECT(proxy))->tp_name,
475 PyWeakref_GET_OBJECT(proxy));
480 proxy_setattr(PyWeakReference *proxy, PyObject *name, PyObject *value)
482 if (!proxy_checkref(proxy))
484 return PyObject_SetAttr(PyWeakref_GET_OBJECT(proxy), name, value);
488 proxy_richcompare(PyObject *proxy, PyObject *v, int op)
490 UNWRAP(proxy);
492 return PyObject_RichCompare(proxy, v, op);
530 proxy_bool(PyWeakReference *proxy)
532 PyObject *o = PyWeakref_GET_OBJECT(proxy);
533 if (!proxy_checkref(proxy))
550 proxy_contains(PyWeakReference *proxy, PyObject *value)
552 if (!proxy_checkref(proxy))
554 proxy), value);
561 proxy_length(PyWeakReference *proxy)
563 if (!proxy_checkref(proxy))
565 return PyObject_Length(PyWeakref_GET_OBJECT(proxy));
571 proxy_setitem(PyWeakReference *proxy, PyObject *key, PyObject *value)
573 if (!proxy_checkref(proxy))
577 return PyObject_DelItem(PyWeakref_GET_OBJECT(proxy), key);
579 return PyObject_SetItem(PyWeakref_GET_OBJECT(proxy), key, value);
585 proxy_iter(PyWeakReference *proxy)
587 if (!proxy_checkref(proxy))
589 return PyObject_GetIter(PyWeakref_GET_OBJECT(proxy));
593 proxy_iternext(PyWeakReference *proxy)
595 if (!proxy_checkref(proxy))
597 return PyIter_Next(PyWeakref_GET_OBJECT(proxy));
738 PyWeakReference *ref, *proxy;
747 get_basic_refs(*list, &ref, &proxy);
758 proxy pointers we got back earlier may have been collected,
763 get_basic_refs(*list, &ref, &proxy);
780 prev = (proxy == NULL) ? ref : proxy;
797 PyWeakReference *ref, *proxy;
806 get_basic_refs(*list, &ref, &proxy);
811 result = proxy;
817 proxy pointers we got back earlier may have been collected,
828 get_basic_refs(*list, &ref, &proxy);
830 if (proxy != NULL) {
831 /* Someone else added a proxy without a callback
836 Py_INCREF(result = proxy);
842 prev = (proxy == NULL) ? ref : proxy;
898 /* Remove the callback-less basic and proxy references */