Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python37/include/python3.7m/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //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 */
Name
Size
Permissions
Options
internal
--
drwxr-xr-x
Python-ast.h
21.291 KB
-rw-r--r--
Python.h
3.471 KB
-rw-r--r--
abstract.h
39.842 KB
-rw-r--r--
accu.h
0.992 KB
-rw-r--r--
asdl.h
1.185 KB
-rw-r--r--
ast.h
0.626 KB
-rw-r--r--
bitset.h
0.791 KB
-rw-r--r--
bltinmodule.h
0.258 KB
-rw-r--r--
boolobject.h
0.865 KB
-rw-r--r--
bytearrayobject.h
2.064 KB
-rw-r--r--
bytes_methods.h
3.224 KB
-rw-r--r--
bytesobject.h
8.294 KB
-rw-r--r--
cellobject.h
0.696 KB
-rw-r--r--
ceval.h
8.513 KB
-rw-r--r--
classobject.h
1.64 KB
-rw-r--r--
code.h
5.923 KB
-rw-r--r--
codecs.h
6.634 KB
-rw-r--r--
compile.h
2.877 KB
-rw-r--r--
complexobject.h
1.765 KB
-rw-r--r--
context.h
1.967 KB
-rw-r--r--
datetime.h
9.617 KB
-rw-r--r--
descrobject.h
3.062 KB
-rw-r--r--
dictobject.h
7.151 KB
-rw-r--r--
dtoa.h
0.447 KB
-rw-r--r--
dynamic_annotations.h
21.942 KB
-rw-r--r--
enumobject.h
0.247 KB
-rw-r--r--
errcode.h
1.655 KB
-rw-r--r--
eval.h
1.181 KB
-rw-r--r--
fileobject.h
1.769 KB
-rw-r--r--
fileutils.h
4.428 KB
-rw-r--r--
floatobject.h
4.682 KB
-rw-r--r--
frameobject.h
3.24 KB
-rw-r--r--
funcobject.h
4.08 KB
-rw-r--r--
genobject.h
3.561 KB
-rw-r--r--
graminit.h
1.945 KB
-rw-r--r--
grammar.h
2.265 KB
-rw-r--r--
import.h
4.86 KB
-rw-r--r--
intrcheck.h
0.841 KB
-rw-r--r--
iterobject.h
0.554 KB
-rw-r--r--
listobject.h
2.858 KB
-rw-r--r--
longintrepr.h
3.71 KB
-rw-r--r--
longobject.h
8.393 KB
-rw-r--r--
marshal.h
0.784 KB
-rw-r--r--
memoryobject.h
2.7 KB
-rw-r--r--
metagrammar.h
0.247 KB
-rw-r--r--
methodobject.h
4.413 KB
-rw-r--r--
modsupport.h
8.358 KB
-rw-r--r--
moduleobject.h
2.25 KB
-rw-r--r--
namespaceobject.h
0.341 KB
-rw-r--r--
node.h
1.087 KB
-rw-r--r--
object.h
40.861 KB
-rw-r--r--
objimpl.h
14.135 KB
-rw-r--r--
odictobject.h
1.25 KB
-rw-r--r--
opcode.h
4.989 KB
-rw-r--r--
osdefs.h
0.675 KB
-rw-r--r--
osmodule.h
0.284 KB
-rw-r--r--
parsetok.h
2.837 KB
-rw-r--r--
patchlevel.h
1.269 KB
-rw-r--r--
pgen.h
0.247 KB
-rw-r--r--
pgenheaders.h
1.193 KB
-rw-r--r--
py_curses.h
3.967 KB
-rw-r--r--
pyarena.h
2.68 KB
-rw-r--r--
pyatomic.h
15.743 KB
-rw-r--r--
pycapsule.h
1.686 KB
-rw-r--r--
pyconfig-64.h
44.246 KB
-rw-r--r--
pyconfig.h
0.158 KB
-rw-r--r--
pyctype.h
1.289 KB
-rw-r--r--
pydebug.h
1.186 KB
-rw-r--r--
pydtrace.h
2.231 KB
-rw-r--r--
pyerrors.h
16.962 KB
-rw-r--r--
pyexpat.h
2.393 KB
-rw-r--r--
pyfpe.h
0.333 KB
-rw-r--r--
pyhash.h
4.042 KB
-rw-r--r--
pylifecycle.h
7.598 KB
-rw-r--r--
pymacconfig.h
2.919 KB
-rw-r--r--
pymacro.h
3.452 KB
-rw-r--r--
pymath.h
8.117 KB
-rw-r--r--
pymem.h
8.782 KB
-rw-r--r--
pyport.h
27.573 KB
-rw-r--r--
pystate.h
15.941 KB
-rw-r--r--
pystrcmp.h
0.426 KB
-rw-r--r--
pystrhex.h
0.483 KB
-rw-r--r--
pystrtod.h
1.448 KB
-rw-r--r--
pythonrun.h
6.059 KB
-rw-r--r--
pythread.h
5.207 KB
-rw-r--r--
pytime.h
8.717 KB
-rw-r--r--
rangeobject.h
0.614 KB
-rw-r--r--
setobject.h
3.283 KB
-rw-r--r--
sliceobject.h
2.422 KB
-rw-r--r--
structmember.h
1.982 KB
-rw-r--r--
structseq.h
1.345 KB
-rw-r--r--
symtable.h
4.813 KB
-rw-r--r--
sysmodule.h
1.476 KB
-rw-r--r--
token.h
2.422 KB
-rw-r--r--
traceback.h
3.559 KB
-rw-r--r--
tupleobject.h
2.413 KB
-rw-r--r--
typeslots.h
2.2 KB
-rw-r--r--
ucnhash.h
1.031 KB
-rw-r--r--
unicodeobject.h
80.35 KB
-rw-r--r--
warnings.h
1.734 KB
-rw-r--r--
weakrefobject.h
2.799 KB
-rw-r--r--