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 :  /usr/include/python2.7/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/include/python2.7/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.
 */
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.
     */
    long 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;
};

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);

PyAPI_FUNC(Py_ssize_t) _PyWeakref_GetWeakrefCount(PyWeakReference *head);

PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);

/* 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
Python-ast.h
20.618 KB
-rw-r--r--
Python.h
4.272 KB
-rw-r--r--
abstract.h
44.165 KB
-rw-r--r--
asdl.h
1.073 KB
-rw-r--r--
ast.h
0.225 KB
-rw-r--r--
bitset.h
0.773 KB
-rw-r--r--
boolobject.h
0.891 KB
-rw-r--r--
bufferobject.h
0.9 KB
-rw-r--r--
bytearrayobject.h
1.896 KB
-rw-r--r--
bytes_methods.h
2.738 KB
-rw-r--r--
bytesobject.h
1.125 KB
-rw-r--r--
cStringIO.h
1.958 KB
-rw-r--r--
cellobject.h
0.636 KB
-rw-r--r--
ceval.h
4.942 KB
-rw-r--r--
classobject.h
2.932 KB
-rw-r--r--
cobject.h
2.861 KB
-rw-r--r--
code.h
4.304 KB
-rw-r--r--
codecs.h
6.026 KB
-rw-r--r--
compile.h
1.04 KB
-rw-r--r--
complexobject.h
1.81 KB
-rw-r--r--
datetime.h
8.118 KB
-rw-r--r--
descrobject.h
2.422 KB
-rw-r--r--
dictobject.h
6.73 KB
-rw-r--r--
dtoa.h
0.33 KB
-rw-r--r--
enumobject.h
0.247 KB
-rw-r--r--
errcode.h
1.366 KB
-rw-r--r--
eval.h
0.544 KB
-rw-r--r--
fileobject.h
3.576 KB
-rw-r--r--
floatobject.h
5.493 KB
-rw-r--r--
frameobject.h
3.178 KB
-rw-r--r--
funcobject.h
2.925 KB
-rw-r--r--
genobject.h
0.87 KB
-rw-r--r--
graminit.h
1.872 KB
-rw-r--r--
grammar.h
2.003 KB
-rw-r--r--
import.h
2.171 KB
-rw-r--r--
intobject.h
2.906 KB
-rw-r--r--
intrcheck.h
0.268 KB
-rw-r--r--
iterobject.h
0.51 KB
-rw-r--r--
listobject.h
2.509 KB
-rw-r--r--
longintrepr.h
3.815 KB
-rw-r--r--
longobject.h
5.673 KB
-rw-r--r--
marshal.h
0.696 KB
-rw-r--r--
memoryobject.h
2.757 KB
-rw-r--r--
metagrammar.h
0.247 KB
-rw-r--r--
methodobject.h
3.276 KB
-rw-r--r--
modsupport.h
4.906 KB
-rw-r--r--
moduleobject.h
0.595 KB
-rw-r--r--
node.h
0.916 KB
-rw-r--r--
object.h
39.12 KB
-rw-r--r--
objimpl.h
14.002 KB
-rw-r--r--
opcode.h
4.701 KB
-rw-r--r--
osdefs.h
1.034 KB
-rw-r--r--
parsetok.h
1.738 KB
-rw-r--r--
patchlevel.h
1.416 KB
-rw-r--r--
pgen.h
0.247 KB
-rw-r--r--
pgenheaders.h
1.152 KB
-rw-r--r--
py_curses.h
4.173 KB
-rw-r--r--
pyarena.h
2.63 KB
-rw-r--r--
pycapsule.h
1.64 KB
-rw-r--r--
pyconfig-64.h
37.018 KB
-rw-r--r--
pyconfig.h
0.158 KB
-rw-r--r--
pyctype.h
1.238 KB
-rw-r--r--
pydebug.h
1.291 KB
-rw-r--r--
pyerrors.h
11.466 KB
-rw-r--r--
pyexpat.h
2.067 KB
-rw-r--r--
pyfpe.h
8.272 KB
-rw-r--r--
pygetopt.h
0.34 KB
-rw-r--r--
pymacconfig.h
2.919 KB
-rw-r--r--
pymactoolbox.h
8.426 KB
-rw-r--r--
pymath.h
7.16 KB
-rw-r--r--
pymem.h
4.602 KB
-rw-r--r--
pyport.h
31.795 KB
-rw-r--r--
pystate.h
6.253 KB
-rw-r--r--
pystrcmp.h
0.452 KB
-rw-r--r--
pystrtod.h
1.545 KB
-rw-r--r--
pythonrun.h
7.064 KB
-rw-r--r--
pythread.h
1.128 KB
-rw-r--r--
rangeobject.h
0.631 KB
-rw-r--r--
setobject.h
3.057 KB
-rw-r--r--
sliceobject.h
1.642 KB
-rw-r--r--
stringobject.h
7.792 KB
-rw-r--r--
structmember.h
2.833 KB
-rw-r--r--
structseq.h
0.842 KB
-rw-r--r--
symtable.h
3.637 KB
-rw-r--r--
sysmodule.h
0.845 KB
-rw-r--r--
timefuncs.h
0.528 KB
-rw-r--r--
token.h
1.757 KB
-rw-r--r--
traceback.h
0.681 KB
-rw-r--r--
tupleobject.h
2.178 KB
-rw-r--r--
ucnhash.h
0.902 KB
-rw-r--r--
unicodeobject.h
51.003 KB
-rw-r--r--
warnings.h
0.62 KB
-rw-r--r--
weakrefobject.h
2.735 KB
-rw-r--r--