Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Add casts to simplehash.h to silence C++ warnings.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Nov 2022 14:47:31 +0000 (10:47 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
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 4a3d0ec2c55a286b961bf73ec9b2c091d97978a4..d03a0018d5c624fd59d34522cf7f8c45f3f6bd84 100644 (file)
@@ -436,9 +436,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;
@@ -448,7 +448,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;
 }
@@ -493,7 +493,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;
 
@@ -1059,7 +1059,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;