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:
@ -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;
|
||||
|
Reference in New Issue
Block a user