From b544650f57dbd4b4928cd88392eecd4e4348d692 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 24 Sep 2024 12:14:38 +0200 Subject: [PATCH 07/10] jsonb internal API void * argument for binary data Change some internal jsonb API functions to take void * for binary data instead of char *. This removes the need for numerous casts. --- src/backend/utils/adt/jsonb_util.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/backend/utils/adt/jsonb_util.c b/src/backend/utils/adt/jsonb_util.c index 773f3690c7b..c8b6c15e059 100644 --- a/src/backend/utils/adt/jsonb_util.c +++ b/src/backend/utils/adt/jsonb_util.c @@ -48,8 +48,8 @@ static void convertJsonbObject(StringInfo buffer, JEntry *header, JsonbValue *va static void convertJsonbScalar(StringInfo buffer, JEntry *header, JsonbValue *scalarVal); static int reserveFromBuffer(StringInfo buffer, int len); -static void appendToBuffer(StringInfo buffer, const char *data, int len); -static void copyToBuffer(StringInfo buffer, int offset, const char *data, int len); +static void appendToBuffer(StringInfo buffer, const void *data, int len); +static void copyToBuffer(StringInfo buffer, int offset, const void *data, int len); static short padBufferToInt(StringInfo buffer); static JsonbIterator *iteratorFromContainer(JsonbContainer *container, JsonbIterator *parent); @@ -1508,7 +1508,7 @@ reserveFromBuffer(StringInfo buffer, int len) * Copy 'len' bytes to a previously reserved area in buffer. */ static void -copyToBuffer(StringInfo buffer, int offset, const char *data, int len) +copyToBuffer(StringInfo buffer, int offset, const void *data, int len) { memcpy(buffer->data + offset, data, len); } @@ -1517,7 +1517,7 @@ copyToBuffer(StringInfo buffer, int offset, const char *data, int len) * A shorthand for reserveFromBuffer + copyToBuffer. */ static void -appendToBuffer(StringInfo buffer, const char *data, int len) +appendToBuffer(StringInfo buffer, const void *data, int len) { int offset; @@ -1646,7 +1646,7 @@ convertJsonbArray(StringInfo buffer, JEntry *header, JsonbValue *val, int level) containerhead |= JB_FSCALAR; } - appendToBuffer(buffer, (char *) &containerhead, sizeof(uint32)); + appendToBuffer(buffer, &containerhead, sizeof(uint32)); /* Reserve space for the JEntries of the elements. */ jentry_offset = reserveFromBuffer(buffer, sizeof(JEntry) * nElems); @@ -1684,7 +1684,7 @@ convertJsonbArray(StringInfo buffer, JEntry *header, JsonbValue *val, int level) if ((i % JB_OFFSET_STRIDE) == 0) meta = (meta & JENTRY_TYPEMASK) | totallen | JENTRY_HAS_OFF; - copyToBuffer(buffer, jentry_offset, (char *) &meta, sizeof(JEntry)); + copyToBuffer(buffer, jentry_offset, &meta, sizeof(JEntry)); jentry_offset += sizeof(JEntry); } @@ -1723,7 +1723,7 @@ convertJsonbObject(StringInfo buffer, JEntry *header, JsonbValue *val, int level * variable-length payload. */ containerheader = nPairs | JB_FOBJECT; - appendToBuffer(buffer, (char *) &containerheader, sizeof(uint32)); + appendToBuffer(buffer, &containerheader, sizeof(uint32)); /* Reserve space for the JEntries of the keys and values. */ jentry_offset = reserveFromBuffer(buffer, sizeof(JEntry) * nPairs * 2); @@ -1765,7 +1765,7 @@ convertJsonbObject(StringInfo buffer, JEntry *header, JsonbValue *val, int level if ((i % JB_OFFSET_STRIDE) == 0) meta = (meta & JENTRY_TYPEMASK) | totallen | JENTRY_HAS_OFF; - copyToBuffer(buffer, jentry_offset, (char *) &meta, sizeof(JEntry)); + copyToBuffer(buffer, jentry_offset, &meta, sizeof(JEntry)); jentry_offset += sizeof(JEntry); } for (i = 0; i < nPairs; i++) @@ -1800,7 +1800,7 @@ convertJsonbObject(StringInfo buffer, JEntry *header, JsonbValue *val, int level if (((i + nPairs) % JB_OFFSET_STRIDE) == 0) meta = (meta & JENTRY_TYPEMASK) | totallen | JENTRY_HAS_OFF; - copyToBuffer(buffer, jentry_offset, (char *) &meta, sizeof(JEntry)); + copyToBuffer(buffer, jentry_offset, &meta, sizeof(JEntry)); jentry_offset += sizeof(JEntry); } @@ -1840,7 +1840,7 @@ convertJsonbScalar(StringInfo buffer, JEntry *header, JsonbValue *scalarVal) numlen = VARSIZE_ANY(scalarVal->val.numeric); padlen = padBufferToInt(buffer); - appendToBuffer(buffer, (char *) scalarVal->val.numeric, numlen); + appendToBuffer(buffer, scalarVal->val.numeric, numlen); *header = JENTRY_ISNUMERIC | (padlen + numlen); break; -- 2.48.1