diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2022-12-30 10:59:25 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2022-12-30 11:05:09 +0100 |
commit | 1f605b82ba66ece8b421b10d41094dd2e3c0c48b (patch) | |
tree | 0274b67eba350574344af68f4b4bbaf3f7c5ba1e | |
parent | 33a33f0ba4d70a704e2d6bb8ee85f29fe18cead9 (diff) | |
download | postgresql-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.c | 18 | ||||
-rw-r--r-- | src/backend/utils/adt/xid8funcs.c | 4 | ||||
-rw-r--r-- | src/common/stringinfo.c | 4 | ||||
-rw-r--r-- | src/include/lib/stringinfo.h | 4 |
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 |