1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-08 11:42:09 +03:00

New alloc set code using a memory block pool for small allocations.

Jan
This commit is contained in:
Jan Wieck
1999-02-06 16:50:34 +00:00
parent 7d2b3874aa
commit ead64f317b
13 changed files with 1666 additions and 314 deletions

View File

@ -6,18 +6,34 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: palloc.h,v 1.6 1998/09/01 04:39:24 momjian Exp $
* $Id: palloc.h,v 1.7 1999/02/06 16:50:34 wieck Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef PALLOC_H
#define PALLOC_H
#include <c.h>
#include "c.h"
extern void *palloc(Size size);
extern void pfree(void *pointer);
extern void *repalloc(void *pointer, Size size);
#ifdef PALLOC_IS_MALLOC
# define palloc(s) malloc(s)
# define pfree(p) free(p)
# define repalloc(p,s) realloc((p),(s))
#else /* ! PALLOC_IS_MALLOC */
/* ----------
* In the case we use memory contexts, use macro's for palloc() etc.
* ----------
*/
# include "utils/mcxt.h"
# define palloc(s) ((void *)MemoryContextAlloc(CurrentMemoryContext,(Size)(s)))
# define pfree(p) MemoryContextFree(CurrentMemoryContext,(Pointer)(p))
# define repalloc(p,s) ((void *)MemoryContextRealloc(CurrentMemoryContext,(Pointer)(p),(Size)(s)))
#endif /* PALLOC_IS_MALLOC */
/* like strdup except uses palloc */
extern char *pstrdup(char *pointer);