PHP 8.2.30
Preview: weakrefobject.h Size: 2.80 KB
//proc/self/root/opt/alt/python37/include/python3.7m/weakrefobject.h

/* Weak references objects for Python. */

#ifndef Py_WEAKREFOBJECT_H
#define Py_WEAKREFOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif


typedef struct _PyWeakReference PyWeakReference;

/* PyWeakReference is the base struct for the Python ReferenceType, ProxyType,
 * and CallableProxyType.
 */
#ifndef Py_LIMITED_API
struct _PyWeakReference {
    PyObject_HEAD

    /* The object to which this is a weak reference, or Py_None if none.
     * Note that this is a stealth reference:  wr_object's refcount is
     * not incremented to reflect this pointer.
     */
    PyObject *wr_object;

    /* A callable to invoke when wr_object dies, or NULL if none. */
    PyObject *wr_callback;

    /* A cache for wr_object's hash code.  As usual for hashes, this is -1
     * if the hash code isn't known yet.
     */
    Py_hash_t hash;

    /* If wr_object is weakly referenced, wr_object has a doubly-linked NULL-
     * terminated list of weak references to it.  These are the list pointers.
     * If wr_object goes away, wr_object is set to Py_None, and these pointers
     * have no meaning then.
     */
    PyWeakReference *wr_prev;
    PyWeakReference *wr_next;
};
#endif

PyAPI_DATA(PyTypeObject) _PyWeakref_RefType;
PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType;
PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType;

#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType)
#define PyWeakref_CheckRefExact(op) \
        (Py_TYPE(op) == &_PyWeakref_RefType)
#define PyWeakref_CheckProxy(op) \
        ((Py_TYPE(op) == &_PyWeakref_ProxyType) || \
         (Py_TYPE(op) == &_PyWeakref_CallableProxyType))

#define PyWeakref_Check(op) \
        (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op))


PyAPI_FUNC(PyObject *) PyWeakref_NewRef(PyObject *ob,
                                              PyObject *callback);
PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob,
                                                PyObject *callback);
PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref);

#ifndef Py_LIMITED_API
PyAPI_FUNC(Py_ssize_t) _PyWeakref_GetWeakrefCount(PyWeakReference *head);

PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);
#endif

/* Explanation for the Py_REFCNT() check: when a weakref's target is part
   of a long chain of deallocations which triggers the trashcan mechanism,
   clearing the weakrefs can be delayed long after the target's refcount
   has dropped to zero.  In the meantime, code accessing the weakref will
   be able to "see" the target object even though it is supposed to be
   unreachable.  See issue #16602. */

#define PyWeakref_GET_OBJECT(ref)                           \
    (Py_REFCNT(((PyWeakReference *)(ref))->wr_object) > 0   \
     ? ((PyWeakReference *)(ref))->wr_object                \
     : Py_None)


#ifdef __cplusplus
}
#endif
#endif /* !Py_WEAKREFOBJECT_H */

Directory Contents

Dirs: 1 × Files: 101

Name Size Perms Modified Actions
internal DIR
- drwxr-xr-x 2024-05-23 07:10:43
Edit Download
39.84 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1016 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.18 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
641 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
810 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
264 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
886 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.06 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.29 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.22 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
713 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.51 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.64 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
5.92 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
6.63 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.88 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.76 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.97 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
9.62 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.06 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
7.15 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
458 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
21.94 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
253 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.66 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.18 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.77 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.43 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.68 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.24 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.08 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.56 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.95 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.26 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.86 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
861 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
567 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.86 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.71 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.39 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
803 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.70 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
253 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.41 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.36 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.25 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
349 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.09 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
40.86 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
14.13 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.25 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.99 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
691 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
291 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.84 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.27 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
253 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.19 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.68 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
15.74 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.69 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
44.25 KB lrw-r--r-- 2024-04-17 17:33:22
Edit Download
162 B lrw-r--r-- 2024-04-17 17:35:58
Edit Download
1.29 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.19 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.23 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
16.96 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.39 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
341 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.04 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
7.60 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.92 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.45 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.12 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.78 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
27.57 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
15.94 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
436 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
495 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.45 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
21.29 KB lrw-r--r-- 2023-06-05 20:46:05
Edit Download
3.47 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
6.06 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
5.21 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
8.72 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.97 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
629 B lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.28 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.42 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.98 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.34 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
4.81 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.48 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.42 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
3.56 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.41 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.20 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.03 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
80.35 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
1.73 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download
2.80 KB lrw-r--r-- 2023-06-05 20:45:13
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).