diff --git a/src/include/nodes/memnodes.h b/src/include/nodes/memnodes.h index 3eeaad49288e88a02892e691dc0cf24961dcc5f8..5e036b9b6f5dc892b8947caef2c91cc32bcc4874 100644 --- a/src/include/nodes/memnodes.h +++ b/src/include/nodes/memnodes.h @@ -16,22 +16,6 @@ #include "nodes/nodes.h" -/* - * A memory context can have callback functions registered on it. Any such - * function will be called once just before the context is next reset or - * deleted. The MemoryContextCallback struct describing such a callback - * typically would be allocated within the context itself, thereby avoiding - * any need to manage it explicitly (the reset/delete action will free it). - */ -typedef void (*MemoryContextCallbackFunction) (void *arg); - -typedef struct MemoryContextCallback -{ - MemoryContextCallbackFunction func; /* function to call */ - void *arg; /* argument to pass it */ - struct MemoryContextCallback *next; /* next in list of callbacks */ -} MemoryContextCallback; - /* * MemoryContext * A logical context in which memory allocations occur. diff --git a/src/include/utils/memutils.h b/src/include/utils/memutils.h index dbb163a15364cb79254d9f43d68531b17edabf36..9e84d01103f3a9fe53889bc3719889ff047d0e89 100644 --- a/src/include/utils/memutils.h +++ b/src/include/utils/memutils.h @@ -97,8 +97,6 @@ extern void MemoryContextDelete(MemoryContext context); extern void MemoryContextResetOnly(MemoryContext context); extern void MemoryContextResetChildren(MemoryContext context); extern void MemoryContextDeleteChildren(MemoryContext context); -extern void MemoryContextRegisterResetCallback(MemoryContext context, - MemoryContextCallback *cb); extern void MemoryContextSetParent(MemoryContext context, MemoryContext new_parent); extern Size GetMemoryChunkSpace(void *pointer); diff --git a/src/include/utils/palloc.h b/src/include/utils/palloc.h index f586fd5535b3ee42417036cb3cfb85840fb4f04c..39b318da43aca64aad9b8f31b87428c4b74756a7 100644 --- a/src/include/utils/palloc.h +++ b/src/include/utils/palloc.h @@ -35,6 +35,22 @@ */ typedef struct MemoryContextData *MemoryContext; +/* + * A memory context can have callback functions registered on it. Any such + * function will be called once just before the context is next reset or + * deleted. The MemoryContextCallback struct describing such a callback + * typically would be allocated within the context itself, thereby avoiding + * any need to manage it explicitly (the reset/delete action will free it). + */ +typedef void (*MemoryContextCallbackFunction) (void *arg); + +typedef struct MemoryContextCallback +{ + MemoryContextCallbackFunction func; /* function to call */ + void *arg; /* argument to pass it */ + struct MemoryContextCallback *next; /* next in list of callbacks */ +} MemoryContextCallback; + /* * CurrentMemoryContext is the default allocation context for palloc(). * Avoid accessing it directly! Instead, use MemoryContextSwitchTo() @@ -107,6 +123,10 @@ MemoryContextSwitchTo(MemoryContext context) #endif /* PG_USE_INLINE || MCXT_INCLUDE_DEFINITIONS */ #endif /* FRONTEND */ +/* Registration of memory context reset/delete callbacks */ +extern void MemoryContextRegisterResetCallback(MemoryContext context, + MemoryContextCallback *cb); + /* * These are like standard strdup() except the copied string is * allocated in a context, not with malloc().