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/python39/include/python3.9/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python39/include/python3.9/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_IS_TYPE(op, &_PyWeakref_RefType)
#define PyWeakref_CheckProxy(op) \
        (Py_IS_TYPE(op, &_PyWeakref_ProxyType) || \
         Py_IS_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
cpython
--
drwxr-xr-x
internal
--
drwxr-xr-x
Python-ast.h
25.579 KB
-rw-r--r--
Python.h
3.449 KB
-rw-r--r--
abstract.h
29.762 KB
-rw-r--r--
asdl.h
1.195 KB
-rw-r--r--
ast.h
0.925 KB
-rw-r--r--
bitset.h
0.457 KB
-rw-r--r--
bltinmodule.h
0.258 KB
-rw-r--r--
boolobject.h
0.864 KB
-rw-r--r--
bytearrayobject.h
1.449 KB
-rw-r--r--
bytesobject.h
2.977 KB
-rw-r--r--
cellobject.h
0.695 KB
-rw-r--r--
ceval.h
5.814 KB
-rw-r--r--
classobject.h
1.618 KB
-rw-r--r--
code.h
0.311 KB
-rw-r--r--
codecs.h
6.634 KB
-rw-r--r--
compile.h
3.689 KB
-rw-r--r--
complexobject.h
1.764 KB
-rw-r--r--
context.h
1.916 KB
-rw-r--r--
datetime.h
9.038 KB
-rw-r--r--
descrobject.h
2.948 KB
-rw-r--r--
dictobject.h
3.628 KB
-rw-r--r--
dynamic_annotations.h
21.942 KB
-rw-r--r--
enumobject.h
0.247 KB
-rw-r--r--
errcode.h
1.586 KB
-rw-r--r--
eval.h
1.181 KB
-rw-r--r--
exports.h
1.072 KB
-rw-r--r--
fileobject.h
1.534 KB
-rw-r--r--
fileutils.h
0.583 KB
-rw-r--r--
floatobject.h
4.258 KB
-rw-r--r--
frameobject.h
0.329 KB
-rw-r--r--
funcobject.h
3.962 KB
-rw-r--r--
genericaliasobject.h
0.326 KB
-rw-r--r--
genobject.h
3.442 KB
-rw-r--r--
graminit.h
2.068 KB
-rw-r--r--
grammar.h
1.778 KB
-rw-r--r--
import.h
2.955 KB
-rw-r--r--
interpreteridobject.h
0.326 KB
-rw-r--r--
intrcheck.h
0.841 KB
-rw-r--r--
iterobject.h
0.509 KB
-rw-r--r--
listobject.h
1.739 KB
-rw-r--r--
longintrepr.h
3.71 KB
-rw-r--r--
longobject.h
9.29 KB
-rw-r--r--
marshal.h
0.784 KB
-rw-r--r--
memoryobject.h
2.699 KB
-rw-r--r--
methodobject.h
3.687 KB
-rw-r--r--
modsupport.h
9.726 KB
-rw-r--r--
moduleobject.h
2.306 KB
-rw-r--r--
namespaceobject.h
0.341 KB
-rw-r--r--
node.h
1.251 KB
-rw-r--r--
object.h
24.051 KB
-rw-r--r--
objimpl.h
8.226 KB
-rw-r--r--
odictobject.h
1.269 KB
-rw-r--r--
opcode.h
4.785 KB
-rw-r--r--
osdefs.h
0.72 KB
-rw-r--r--
osmodule.h
0.284 KB
-rw-r--r--
parsetok.h
2.889 KB
-rw-r--r--
patchlevel.h
1.269 KB
-rw-r--r--
picklebufobject.h
0.826 KB
-rw-r--r--
py_curses.h
2.416 KB
-rw-r--r--
pyarena.h
2.68 KB
-rw-r--r--
pycapsule.h
1.685 KB
-rw-r--r--
pyconfig-64.h
46.879 KB
-rw-r--r--
pyconfig.h
0.158 KB
-rw-r--r--
pyctype.h
1.354 KB
-rw-r--r--
pydebug.h
1.067 KB
-rw-r--r--
pydtrace.h
2.356 KB
-rw-r--r--
pyerrors.h
12.136 KB
-rw-r--r--
pyexpat.h
2.512 KB
-rw-r--r--
pyfpe.h
0.434 KB
-rw-r--r--
pyframe.h
0.455 KB
-rw-r--r--
pyhash.h
4.163 KB
-rw-r--r--
pylifecycle.h
2.086 KB
-rw-r--r--
pymacconfig.h
2.919 KB
-rw-r--r--
pymacro.h
4.805 KB
-rw-r--r--
pymath.h
8.379 KB
-rw-r--r--
pymem.h
4.303 KB
-rw-r--r--
pyport.h
30.54 KB
-rw-r--r--
pystate.h
5.127 KB
-rw-r--r--
pystrcmp.h
0.426 KB
-rw-r--r--
pystrhex.h
0.829 KB
-rw-r--r--
pystrtod.h
1.448 KB
-rw-r--r--
pythonrun.h
7.493 KB
-rw-r--r--
pythread.h
5.799 KB
-rw-r--r--
pytime.h
8.719 KB
-rw-r--r--
rangeobject.h
0.613 KB
-rw-r--r--
setobject.h
3.246 KB
-rw-r--r--
sliceobject.h
2.457 KB
-rw-r--r--
structmember.h
1.982 KB
-rw-r--r--
structseq.h
1.357 KB
-rw-r--r--
symtable.h
5.183 KB
-rw-r--r--
sysmodule.h
1.213 KB
-rw-r--r--
token.h
2.58 KB
-rw-r--r--
traceback.h
0.57 KB
-rw-r--r--
tracemalloc.h
1.088 KB
-rw-r--r--
tupleobject.h
1.576 KB
-rw-r--r--
typeslots.h
2.295 KB
-rw-r--r--
ucnhash.h
1.031 KB
-rw-r--r--
unicodeobject.h
34.596 KB
-rw-r--r--
warnings.h
1.734 KB
-rw-r--r--
weakrefobject.h
2.796 KB
-rw-r--r--