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
This commit is contained in:
Peter Eisentraut 2022-12-30 10:59:25 +01:00
parent 33a33f0ba4
commit 1f605b82ba
4 changed files with 15 additions and 15 deletions

View File

@ -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;
}

View File

@ -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 *

View File

@ -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);

View File

@ -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