1 /*-------------------------------------------------------------------------
4 * memory management support for frontend code
6 * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
11 * src/common/fe_memutils.c
13 *-------------------------------------------------------------------------
17 #error "This file is not expected to be compiled for backend code"
20 #include "postgres_fe.h"
23 pg_malloc(size_t size)
27 /* Avoid unportable behavior of malloc(0) */
33 fprintf(stderr, _("out of memory\n"));
40 pg_malloc0(size_t size)
44 tmp = pg_malloc(size);
50 pg_realloc(void *ptr, size_t size)
54 /* Avoid unportable behavior of realloc(NULL, 0) */
55 if (ptr == NULL && size == 0)
57 tmp = realloc(ptr, size);
60 fprintf(stderr, _("out of memory\n"));
67 * "Safe" wrapper around strdup().
70 pg_strdup(const char *in)
77 _("cannot duplicate null pointer (internal error)\n"));
83 fprintf(stderr, _("out of memory\n"));
97 * Frontend emulation of backend memory management functions. Useful for
98 * programs that compile backend files.
103 return pg_malloc(size);
109 return pg_malloc0(size);
119 pstrdup(const char *in)
121 return pg_strdup(in);
125 repalloc(void *pointer, Size size)
127 return pg_realloc(pointer, size);