jsonb internal API void * argument for binary data
authorPeter Eisentraut <[email protected]>
Sun, 23 Feb 2025 07:34:55 +0000 (08:34 +0100)
committerPeter Eisentraut <[email protected]>
Sun, 23 Feb 2025 07:34:55 +0000 (08:34 +0100)
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 <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/fd1fcedb-3492-4fc8-9e3e-74b97f2db6c7%40eisentraut.org

src/backend/utils/adt/jsonb_util.c

index 773f3690c7b9e4fa4ac416c5bc0965c6036442bb..c8b6c15e05975a2754db9dc4a53d1a89aa3fa3e7 100644 (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;