v2-0001-Apply-unconstify-in-more-places.patch

text/plain

Filename: v2-0001-Apply-unconstify-in-more-places.patch
Type: text/plain
Part: 0
Message: Re: Large writable variables

Patch

Format: format-patch
Series: patch v2-0001
Subject: Apply unconstify() in more places
File+
src/backend/utils/adt/json.c 2 2
src/backend/utils/adt/misc.c 1 1
src/backend/utils/adt/varlena.c 2 2
src/backend/utils/fmgr/dfmgr.c 2 2
src/port/win32setlocale.c 1 1
From 54693f7201aa4768509c5d6939961b50a9021bcf Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Thu, 18 Oct 2018 22:11:44 +0200
Subject: [PATCH v2] Apply unconstify() in more places

---
 src/backend/utils/adt/json.c    | 4 ++--
 src/backend/utils/adt/misc.c    | 2 +-
 src/backend/utils/adt/varlena.c | 4 ++--
 src/backend/utils/fmgr/dfmgr.c  | 4 ++--
 src/port/win32setlocale.c       | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/backend/utils/adt/json.c b/src/backend/utils/adt/json.c
index 6f0fe94d63..f47a498228 100644
--- a/src/backend/utils/adt/json.c
+++ b/src/backend/utils/adt/json.c
@@ -207,12 +207,12 @@ IsValidJsonNumber(const char *str, int len)
 	 */
 	if (*str == '-')
 	{
-		dummy_lex.input = (char *) str + 1;
+		dummy_lex.input = unconstify(char *, str) + 1;
 		dummy_lex.input_length = len - 1;
 	}
 	else
 	{
-		dummy_lex.input = (char *) str;
+		dummy_lex.input = unconstify(char *, str);
 		dummy_lex.input_length = len;
 	}
 
diff --git a/src/backend/utils/adt/misc.c b/src/backend/utils/adt/misc.c
index 6ea3679835..309eb2935c 100644
--- a/src/backend/utils/adt/misc.c
+++ b/src/backend/utils/adt/misc.c
@@ -423,7 +423,7 @@ pg_get_keywords(PG_FUNCTION_ARGS)
 		HeapTuple	tuple;
 
 		/* cast-away-const is ugly but alternatives aren't much better */
-		values[0] = (char *) ScanKeywords[funcctx->call_cntr].name;
+		values[0] = unconstify(char *, ScanKeywords[funcctx->call_cntr].name);
 
 		switch (ScanKeywords[funcctx->call_cntr].category)
 		{
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index a5e812d026..0fd3b15748 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -182,7 +182,7 @@ char *
 text_to_cstring(const text *t)
 {
 	/* must cast away the const, unfortunately */
-	text	   *tunpacked = pg_detoast_datum_packed((struct varlena *) t);
+	text	   *tunpacked = pg_detoast_datum_packed(unconstify(text *, t));
 	int			len = VARSIZE_ANY_EXHDR(tunpacked);
 	char	   *result;
 
@@ -213,7 +213,7 @@ void
 text_to_cstring_buffer(const text *src, char *dst, size_t dst_len)
 {
 	/* must cast away the const, unfortunately */
-	text	   *srcunpacked = pg_detoast_datum_packed((struct varlena *) src);
+	text	   *srcunpacked = pg_detoast_datum_packed(unconstify(text *, src));
 	size_t		src_len = VARSIZE_ANY_EXHDR(srcunpacked);
 
 	if (dst_len > 0)
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 4a5cc7cfc7..d200b960d2 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -126,7 +126,7 @@ load_external_function(const char *filename, const char *funcname,
 	 * should declare its second argument as "const char *", but older
 	 * platforms might not, so for the time being we just cast away const.
 	 */
-	retval = (PGFunction) dlsym(lib_handle, (char *) funcname);
+	retval = (PGFunction) dlsym(lib_handle, unconstify(char *, funcname));
 
 	if (retval == NULL && signalNotFound)
 		ereport(ERROR,
@@ -175,7 +175,7 @@ PGFunction
 lookup_external_function(void *filehandle, const char *funcname)
 {
 	/* as above, cast away const for the time being */
-	return (PGFunction) dlsym(filehandle, (char *) funcname);
+	return (PGFunction) dlsym(filehandle, unconstify(char *, funcname));
 }
 
 
diff --git a/src/port/win32setlocale.c b/src/port/win32setlocale.c
index 0597c2afca..a8cf170dd1 100644
--- a/src/port/win32setlocale.c
+++ b/src/port/win32setlocale.c
@@ -183,7 +183,7 @@ pgwin32_setlocale(int category, const char *locale)
 	 * forbidden to modify, so casting away the "const" is innocuous.
 	 */
 	if (result)
-		result = (char *) map_locale(locale_map_result, result);
+		result = unconstify(char *, map_locale(locale_map_result, result));
 
 	return result;
 }

base-commit: e74dd00f53cd6dc1887f76b9672e5f6dcf0fd8a2
-- 
2.19.1