From 4a8d573cda5cacf30da61e14aaeda8bbc3057d9d Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Sat, 28 Jun 2008 16:45:22 +0000 Subject: [PATCH] If pnstrdup is going to be promoted to a generally available function, it ought to conform to the rest of palloc.h in using Size for sizes. --- src/backend/utils/mmgr/mcxt.c | 29 ++++++++++++++++------------- src/include/utils/palloc.h | 6 +++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c index daeaaaf1871..5b453b1e876 100644 --- a/src/backend/utils/mmgr/mcxt.c +++ b/src/backend/utils/mmgr/mcxt.c @@ -14,7 +14,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/mmgr/mcxt.c,v 1.64 2008/06/18 18:42:54 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mmgr/mcxt.c,v 1.65 2008/06/28 16:45:22 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -624,18 +624,6 @@ repalloc(void *pointer, Size size) pointer, size); } -/* Like pstrdup(), but append null byte */ -char * -pnstrdup(const char *in, int len) -{ - char *out = palloc(len + 1); - - memcpy(out, in, len); - out[len] = '\0'; - return out; -} - - /* * MemoryContextSwitchTo * Returns the current context; installs the given context. @@ -676,6 +664,21 @@ MemoryContextStrdup(MemoryContext context, const char *string) return nstr; } +/* + * pnstrdup + * Like pstrdup(), but append null byte to a + * not-necessarily-null-terminated input string. + */ +char * +pnstrdup(const char *in, Size len) +{ + char *out = palloc(len + 1); + + memcpy(out, in, len); + out[len] = '\0'; + return out; +} + #if defined(WIN32) || defined(__CYGWIN__) /* diff --git a/src/include/utils/palloc.h b/src/include/utils/palloc.h index 7e3c085a7aa..d3554f3c168 100644 --- a/src/include/utils/palloc.h +++ b/src/include/utils/palloc.h @@ -21,7 +21,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/palloc.h,v 1.39 2008/06/18 18:42:54 momjian Exp $ + * $PostgreSQL: pgsql/src/include/utils/palloc.h,v 1.40 2008/06/28 16:45:22 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -70,8 +70,6 @@ extern void pfree(void *pointer); extern void *repalloc(void *pointer, Size size); -extern char *pnstrdup(const char *in, int len); - /* * MemoryContextSwitchTo can't be a macro in standard C compilers. * But we can make it an inline function when using GCC. @@ -99,6 +97,8 @@ extern char *MemoryContextStrdup(MemoryContext context, const char *string); #define pstrdup(str) MemoryContextStrdup(CurrentMemoryContext, (str)) +extern char *pnstrdup(const char *in, Size len); + #if defined(WIN32) || defined(__CYGWIN__) extern void *pgport_palloc(Size sz); extern char *pgport_pstrdup(const char *str); -- GitLab