Add casts to simplehash.h to silence C++ warnings.
authorTom Lane <[email protected]>
Thu, 3 Nov 2022 14:47:31 +0000 (10:47 -0400)
committerTom Lane <[email protected]>
Thu, 3 Nov 2022 14:47:31 +0000 (10:47 -0400)
Casting the result of palloc etc. to the intended type is more per
project style anyway.

(The fact that cpluspluscheck doesn't notice these problems is
because it doesn't expand any macros, which seems like a troubling
shortcoming.  Don't have a good idea about improving that.)

Back-patch to v13, which is as far as the patch applies cleanly;
doesn't seem worth working harder.

David Geier

Discussion: https://postgr.es/m/aa5d88a3-71f4-3455-11cf-82de0372c941@gmail.com

src/include/lib/simplehash.h

index e70d5a3714fb6484e4dee9f6d31ebf7152a2f31d..3de8d47e9d7740961d509895fc4cc5ca4db9532b 100644 (file)
@@ -367,9 +367,9 @@ SH_CREATE(MemoryContext ctx, uint32 nelements, void *private_data)
    uint64      size;
 
 #ifdef SH_RAW_ALLOCATOR
-   tb = SH_RAW_ALLOCATOR(sizeof(SH_TYPE));
+   tb = (SH_TYPE *) SH_RAW_ALLOCATOR(sizeof(SH_TYPE));
 #else
-   tb = MemoryContextAllocZero(ctx, sizeof(SH_TYPE));
+   tb = (SH_TYPE *) MemoryContextAllocZero(ctx, sizeof(SH_TYPE));
    tb->ctx = ctx;
 #endif
    tb->private_data = private_data;
@@ -379,7 +379,7 @@ SH_CREATE(MemoryContext ctx, uint32 nelements, void *private_data)
 
    SH_COMPUTE_PARAMETERS(tb, size);
 
-   tb->data = SH_ALLOCATE(tb, sizeof(SH_ELEMENT_TYPE) * tb->size);
+   tb->data = (SH_ELEMENT_TYPE *) SH_ALLOCATE(tb, sizeof(SH_ELEMENT_TYPE) * tb->size);
 
    return tb;
 }
@@ -424,7 +424,7 @@ SH_GROW(SH_TYPE * tb, uint64 newsize)
    /* compute parameters for new table */
    SH_COMPUTE_PARAMETERS(tb, newsize);
 
-   tb->data = SH_ALLOCATE(tb, sizeof(SH_ELEMENT_TYPE) * tb->size);
+   tb->data = (SH_ELEMENT_TYPE *) SH_ALLOCATE(tb, sizeof(SH_ELEMENT_TYPE) * tb->size);
 
    newdata = tb->data;
 
@@ -935,7 +935,7 @@ SH_STAT(SH_TYPE * tb)
    double      fillfactor;
    uint32      i;
 
-   uint32     *collisions = palloc0(tb->size * sizeof(uint32));
+   uint32     *collisions = (uint32 *) palloc0(tb->size * sizeof(uint32));
    uint32      total_collisions = 0;
    uint32      max_collisions = 0;
    double      avg_collisions;