diff --git a/Include/internal/mem.h b/Include/internal/mem.h index a731e30e6af..4a41b77734a 100644 --- a/Include/internal/mem.h +++ b/Include/internal/mem.h @@ -4,6 +4,10 @@ extern "C" { #endif +#ifndef Py_BUILD_CORE +# error "Py_BUILD_CORE must be defined to include this header" +#endif + #include "objimpl.h" #include "pymem.h" @@ -145,6 +149,14 @@ PyAPI_FUNC(void) _PyGC_Initialize(struct _gc_runtime_state *); #define _PyGC_generation0 _PyRuntime.gc.generation0 + +/* Set the memory allocator of the specified domain to the default. + Save the old allocator into *old_alloc if it's non-NULL. + Return on success, or return -1 if the domain is unknown. */ +PyAPI_FUNC(int) _PyMem_SetDefaultAllocator( + PyMemAllocatorDomain domain, + PyMemAllocatorEx *old_alloc); + #ifdef __cplusplus } #endif diff --git a/Include/pymem.h b/Include/pymem.h index 19f0c8a2d9b..23457adb5a4 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -198,16 +198,6 @@ PyAPI_FUNC(void) PyMem_SetAllocator(PyMemAllocatorDomain domain, PyAPI_FUNC(void) PyMem_SetupDebugHooks(void); #endif /* Py_LIMITED_API */ -#ifdef Py_BUILD_CORE -/* Set the memory allocator of the specified domain to the default. - Save the old allocator into *old_alloc if it's non-NULL. - Return on success, or return -1 if the domain is unknown. */ -PyAPI_FUNC(int) _PyMem_SetDefaultAllocator( - PyMemAllocatorDomain domain, - PyMemAllocatorEx *old_alloc); -#endif - - /* bpo-35053: expose _Py_tracemalloc_config for performance: _Py_NewReference() needs an efficient check to test if tracemalloc is tracing. diff --git a/Modules/main.c b/Modules/main.c index 455178af8ba..6a8aa05fc37 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -2,6 +2,7 @@ #include "Python.h" #include "osdefs.h" +#include "internal/mem.h" #include "internal/pygetopt.h" #include "internal/pystate.h" diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c index fbc94780690..88ded83a29e 100644 --- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -1,4 +1,5 @@ #include "Python.h" +#include "internal/mem.h" #include diff --git a/Python/coreconfig.c b/Python/coreconfig.c index a82175e4fd2..81086f42d67 100644 --- a/Python/coreconfig.c +++ b/Python/coreconfig.c @@ -1,4 +1,5 @@ #include "Python.h" +#include "internal/mem.h" #include "internal/pystate.h" #include #ifdef HAVE_LANGINFO_H diff --git a/Python/import.c b/Python/import.c index e761f65c66b..338cd302dcc 100644 --- a/Python/import.c +++ b/Python/import.c @@ -5,6 +5,7 @@ #include "Python-ast.h" #undef Yield /* undefine macro conflicting with winbase.h */ #include "internal/hash.h" +#include "internal/mem.h" #include "internal/pystate.h" #include "errcode.h" #include "marshal.h" diff --git a/Python/pathconfig.c b/Python/pathconfig.c index 4e0830f4cf9..efccb8d6bb8 100644 --- a/Python/pathconfig.c +++ b/Python/pathconfig.c @@ -2,6 +2,7 @@ #include "Python.h" #include "osdefs.h" +#include "internal/mem.h" #include "internal/pystate.h" #include diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index f1579c781df..78691a54f37 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -6,6 +6,7 @@ #undef Yield /* undefine macro conflicting with winbase.h */ #include "internal/context.h" #include "internal/hamt.h" +#include "internal/mem.h" #include "internal/pystate.h" #include "grammar.h" #include "node.h" diff --git a/Python/pystate.c b/Python/pystate.c index d04981121c1..98e954d9d91 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -2,6 +2,7 @@ /* Thread and interpreter state structures and their interfaces */ #include "Python.h" +#include "internal/mem.h" #include "internal/pystate.h" #define _PyThreadState_SET(value) \ diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 9579eae4ff5..71414c95978 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -15,6 +15,7 @@ Data members: */ #include "Python.h" +#include "internal/mem.h" #include "internal/pystate.h" #include "code.h" #include "frameobject.h"