1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

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.

Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Discussion: https://www.postgresql.org/message-id/flat/fd1fcedb-3492-4fc8-9e3e-74b97f2db6c7%40eisentraut.org
This commit is contained in:
Peter Eisentraut
2025-02-23 08:34:55 +01:00
parent cb45dc3afb
commit f98765f0ce

View File

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