diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-10-25 13:54:13 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-25 13:54:13 (GMT) |
commit | 6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3 (patch) | |
tree | 69ba9fb9c2291b19241c700a4466c136c5aeda5b /Include/pymem.h | |
parent | 9e00e80e213ebc37eff89ce72102c1f928ebc133 (diff) | |
download | cpython-6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3.zip cpython-6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3.tar.gz cpython-6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3.tar.bz2 |
bpo-35053: Add Include/tracemalloc.h (GH-10091)
* Modify object.h to ensure that pymem.h is included,
to get _Py_tracemalloc_config variable.
* Move _PyTraceMalloc_XXX() functions to tracemalloc.h,
they need PyObject type. Break circular dependency between pymem.h
and object.h.
Diffstat (limited to 'Include/pymem.h')
-rw-r--r-- | Include/pymem.h | 40 |
1 files changed, 3 insertions, 37 deletions
diff --git a/Include/pymem.h b/Include/pymem.h index 6299ab4..e993628 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -24,42 +24,6 @@ PyAPI_FUNC(int) _PyMem_SetupAllocators(const char *opt); /* Try to get the allocators name set by _PyMem_SetupAllocators(). */ PyAPI_FUNC(const char*) _PyMem_GetAllocatorsName(void); -/* Track an allocated memory block in the tracemalloc module. - Return 0 on success, return -1 on error (failed to allocate memory to store - the trace). - - Return -2 if tracemalloc is disabled. - - If memory block is already tracked, update the existing trace. */ -PyAPI_FUNC(int) PyTraceMalloc_Track( - unsigned int domain, - uintptr_t ptr, - size_t size); - -/* Update the Python traceback of an object. - This function can be used when a memory block is reused from a free list. */ -PyAPI_FUNC(int) _PyTraceMalloc_NewReference(PyObject *op); - -/* Untrack an allocated memory block in the tracemalloc module. - Do nothing if the block was not tracked. - - Return -2 if tracemalloc is disabled, otherwise return 0. */ -PyAPI_FUNC(int) PyTraceMalloc_Untrack( - unsigned int domain, - uintptr_t ptr); - -/* Get the traceback where a memory block was allocated. - - Return a tuple of (filename: str, lineno: int) tuples. - - Return None if the tracemalloc module is disabled or if the memory block - is not tracked by tracemalloc. - - Raise an exception and return NULL on error. */ -PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback( - unsigned int domain, - uintptr_t ptr); - PyAPI_FUNC(int) _PyMem_IsFreed(void *ptr, size_t size); #endif /* !defined(Py_LIMITED_API) */ @@ -246,7 +210,9 @@ PyAPI_FUNC(int) _PyMem_SetDefaultAllocator( /* bpo-35053: expose _Py_tracemalloc_config for performance: _Py_NewReference() needs an efficient check to test if tracemalloc is - tracing. */ + tracing. + + It has to be defined in pymem.h, before object.h is included. */ struct _PyTraceMalloc_Config { /* Module initialized? Variable protected by the GIL */ |