����JFIF��x�x����'
Server IP : 66.29.137.217 / Your IP : 3.17.80.220 Web Server : LiteSpeed System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : gltevjme ( 1095) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/python313/include/python3.13/internal/ |
Upload File : |
#ifndef Py_INTERNAL_OBJECT_ALLOC_H #define Py_INTERNAL_OBJECT_ALLOC_H #include "pycore_object.h" // _PyType_HasFeature() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_tstate.h" // _PyThreadStateImpl #ifdef __cplusplus extern "C" { #endif #ifndef Py_BUILD_CORE # error "this header requires Py_BUILD_CORE define" #endif #ifdef Py_GIL_DISABLED static inline mi_heap_t * _PyObject_GetAllocationHeap(_PyThreadStateImpl *tstate, PyTypeObject *tp) { struct _mimalloc_thread_state *m = &tstate->mimalloc; if (_PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER)) { return &m->heaps[_Py_MIMALLOC_HEAP_GC_PRE]; } else if (_PyType_IS_GC(tp)) { return &m->heaps[_Py_MIMALLOC_HEAP_GC]; } else { return &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; } } #endif // Sets the heap used for PyObject_Malloc(), PyObject_Realloc(), etc. calls in // Py_GIL_DISABLED builds. We use different heaps depending on if the object // supports GC and if it has a pre-header. We smuggle the choice of heap // through the _mimalloc_thread_state. In the default build, this simply // calls PyObject_Malloc(). static inline void * _PyObject_MallocWithType(PyTypeObject *tp, size_t size) { #ifdef Py_GIL_DISABLED _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); struct _mimalloc_thread_state *m = &tstate->mimalloc; m->current_object_heap = _PyObject_GetAllocationHeap(tstate, tp); #endif void *mem = PyObject_Malloc(size); #ifdef Py_GIL_DISABLED m->current_object_heap = &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; #endif return mem; } static inline void * _PyObject_ReallocWithType(PyTypeObject *tp, void *ptr, size_t size) { #ifdef Py_GIL_DISABLED _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); struct _mimalloc_thread_state *m = &tstate->mimalloc; m->current_object_heap = _PyObject_GetAllocationHeap(tstate, tp); #endif void *mem = PyObject_Realloc(ptr, size); #ifdef Py_GIL_DISABLED m->current_object_heap = &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; #endif return mem; } #ifdef __cplusplus } #endif #endif // !Py_INTERNAL_OBJECT_ALLOC_H