diff options
Diffstat (limited to 'src/common/fe_memutils.c')
-rw-r--r-- | src/common/fe_memutils.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/common/fe_memutils.c b/src/common/fe_memutils.c index bfe79f8e437..7b96a4b6ba7 100644 --- a/src/common/fe_memutils.c +++ b/src/common/fe_memutils.c @@ -93,6 +93,25 @@ pg_free(void *ptr) free(ptr); } +int +pg_asprintf(char **ret, const char *format, ...) +{ + va_list ap; + int rc; + + va_start(ap, format); + rc = vasprintf(ret, format, ap); + va_end(ap); + + if (rc < 0) + { + fprintf(stderr, _("out of memory\n")); + exit(EXIT_FAILURE); + } + + return rc; +} + /* * Frontend emulation of backend memory management functions. Useful for * programs that compile backend files. @@ -126,3 +145,23 @@ repalloc(void *pointer, Size size) { return pg_realloc(pointer, size); } + +char * +psprintf(const char *format, ...) +{ + va_list ap; + int rc; + char *ret; + + va_start(ap, format); + rc = vasprintf(&ret, format, ap); + va_end(ap); + + if (rc < 0) + { + fprintf(stderr, _("out of memory\n")); + exit(EXIT_FAILURE); + } + + return ret; +} |