aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2022-12-30 10:59:25 +0100
committerPeter Eisentraut <peter@eisentraut.org>2022-12-30 11:05:09 +0100
commit1f605b82ba66ece8b421b10d41094dd2e3c0c48b (patch)
tree0274b67eba350574344af68f4b4bbaf3f7c5ba1e
parent33a33f0ba4d70a704e2d6bb8ee85f29fe18cead9 (diff)
downloadpostgresql-1f605b82ba66ece8b421b10d41094dd2e3c0c48b.tar.gz
postgresql-1f605b82ba66ece8b421b10d41094dd2e3c0c48b.zip
Change argument of appendBinaryStringInfo from char * to void *
There is some code that uses this function to assemble some kind of packed binary layout, which requires a bunch of casts because of this. Functions taking binary data plus length should take void * instead, like memcpy() for example. Discussion: https://www.postgresql.org/message-id/flat/a0086cfc-ff0f-2827-20fe-52b591d2666c%40enterprisedb.com
-rw-r--r--src/backend/utils/adt/jsonpath.c18
-rw-r--r--src/backend/utils/adt/xid8funcs.c4
-rw-r--r--src/common/stringinfo.c4
-rw-r--r--src/include/lib/stringinfo.h4
4 files changed, 15 insertions, 15 deletions
diff --git a/src/backend/utils/adt/jsonpath.c b/src/backend/utils/adt/jsonpath.c
index f37d60f6935..0b412315147 100644
--- a/src/backend/utils/adt/jsonpath.c
+++ b/src/backend/utils/adt/jsonpath.c
@@ -267,18 +267,18 @@ flattenJsonPathParseItem(StringInfo buf, int *result, struct Node *escontext,
case jpiString:
case jpiVariable:
case jpiKey:
- appendBinaryStringInfo(buf, (char *) &item->value.string.len,
+ appendBinaryStringInfo(buf, &item->value.string.len,
sizeof(item->value.string.len));
appendBinaryStringInfo(buf, item->value.string.val,
item->value.string.len);
appendStringInfoChar(buf, '\0');
break;
case jpiNumeric:
- appendBinaryStringInfo(buf, (char *) item->value.numeric,
+ appendBinaryStringInfo(buf, item->value.numeric,
VARSIZE(item->value.numeric));
break;
case jpiBool:
- appendBinaryStringInfo(buf, (char *) &item->value.boolean,
+ appendBinaryStringInfo(buf, &item->value.boolean,
sizeof(item->value.boolean));
break;
case jpiAnd:
@@ -328,11 +328,11 @@ flattenJsonPathParseItem(StringInfo buf, int *result, struct Node *escontext,
int32 offs;
appendBinaryStringInfo(buf,
- (char *) &item->value.like_regex.flags,
+ &item->value.like_regex.flags,
sizeof(item->value.like_regex.flags));
offs = reserveSpaceForItemPointer(buf);
appendBinaryStringInfo(buf,
- (char *) &item->value.like_regex.patternlen,
+ &item->value.like_regex.patternlen,
sizeof(item->value.like_regex.patternlen));
appendBinaryStringInfo(buf, item->value.like_regex.pattern,
item->value.like_regex.patternlen);
@@ -393,7 +393,7 @@ flattenJsonPathParseItem(StringInfo buf, int *result, struct Node *escontext,
int offset;
int i;
- appendBinaryStringInfo(buf, (char *) &nelems, sizeof(nelems));
+ appendBinaryStringInfo(buf, &nelems, sizeof(nelems));
offset = buf->len;
@@ -431,10 +431,10 @@ flattenJsonPathParseItem(StringInfo buf, int *result, struct Node *escontext,
break;
case jpiAny:
appendBinaryStringInfo(buf,
- (char *) &item->value.anybounds.first,
+ &item->value.anybounds.first,
sizeof(item->value.anybounds.first));
appendBinaryStringInfo(buf,
- (char *) &item->value.anybounds.last,
+ &item->value.anybounds.last,
sizeof(item->value.anybounds.last));
break;
case jpiType:
@@ -496,7 +496,7 @@ reserveSpaceForItemPointer(StringInfo buf)
int32 pos = buf->len;
int32 ptr = 0;
- appendBinaryStringInfo(buf, (char *) &ptr, sizeof(ptr));
+ appendBinaryStringInfo(buf, &ptr, sizeof(ptr));
return pos;
}
diff --git a/src/backend/utils/adt/xid8funcs.c b/src/backend/utils/adt/xid8funcs.c
index 3baf5f7d903..15d4db4b700 100644
--- a/src/backend/utils/adt/xid8funcs.c
+++ b/src/backend/utils/adt/xid8funcs.c
@@ -260,7 +260,7 @@ buf_init(FullTransactionId xmin, FullTransactionId xmax)
snap.nxip = 0;
buf = makeStringInfo();
- appendBinaryStringInfo(buf, (char *) &snap, PG_SNAPSHOT_SIZE(0));
+ appendBinaryStringInfo(buf, &snap, PG_SNAPSHOT_SIZE(0));
return buf;
}
@@ -272,7 +272,7 @@ buf_add_txid(StringInfo buf, FullTransactionId fxid)
/* do this before possible realloc */
snap->nxip++;
- appendBinaryStringInfo(buf, (char *) &fxid, sizeof(fxid));
+ appendBinaryStringInfo(buf, &fxid, sizeof(fxid));
}
static pg_snapshot *
diff --git a/src/common/stringinfo.c b/src/common/stringinfo.c
index 76ff4d3e245..66a64180c96 100644
--- a/src/common/stringinfo.c
+++ b/src/common/stringinfo.c
@@ -224,7 +224,7 @@ appendStringInfoSpaces(StringInfo str, int count)
* if necessary. Ensures that a trailing null byte is present.
*/
void
-appendBinaryStringInfo(StringInfo str, const char *data, int datalen)
+appendBinaryStringInfo(StringInfo str, const void *data, int datalen)
{
Assert(str != NULL);
@@ -250,7 +250,7 @@ appendBinaryStringInfo(StringInfo str, const char *data, int datalen)
* if necessary. Does not ensure a trailing null-byte exists.
*/
void
-appendBinaryStringInfoNT(StringInfo str, const char *data, int datalen)
+appendBinaryStringInfoNT(StringInfo str, const void *data, int datalen)
{
Assert(str != NULL);
diff --git a/src/include/lib/stringinfo.h b/src/include/lib/stringinfo.h
index 9b755c48831..63ea1eca630 100644
--- a/src/include/lib/stringinfo.h
+++ b/src/include/lib/stringinfo.h
@@ -142,7 +142,7 @@ extern void appendStringInfoSpaces(StringInfo str, int count);
* if necessary.
*/
extern void appendBinaryStringInfo(StringInfo str,
- const char *data, int datalen);
+ const void *data, int datalen);
/*------------------------
* appendBinaryStringInfoNT
@@ -150,7 +150,7 @@ extern void appendBinaryStringInfo(StringInfo str,
* if necessary. Does not ensure a trailing null-byte exists.
*/
extern void appendBinaryStringInfoNT(StringInfo str,
- const char *data, int datalen);
+ const void *data, int datalen);
/*------------------------
* enlargeStringInfo