mirror of
https://github.com/postgres/postgres.git
synced 2025-12-09 02:08:45 +03:00
Don't rely on pointer arithmetic with Pointer type
The comment for the Pointer type says 'XXX Pointer arithmetic is done with this, so it can't be void * under "true" ANSI compilers.'. This fixes that. Change from Pointer to use char * explicitly where pointer arithmetic is needed. This makes the meaning of the code clearer locally and removes a dependency on the actual definition of the Pointer type. (The definition of the Pointer type is not changed in this commit.) Reviewed-by: Chao Li <li.evan.chao@gmail.com> Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com> Discussion: https://www.postgresql.org/message-id/4154950a-47ae-4223-bd01-1235cc50e933%40eisentraut.org
This commit is contained in:
@@ -72,7 +72,7 @@ typedef BloomPageOpaqueData *BloomPageOpaque;
|
||||
((BloomTuple *)(PageGetContents(page) \
|
||||
+ (state)->sizeOfBloomTuple * ((offset) - 1)))
|
||||
#define BloomPageGetNextTuple(state, tuple) \
|
||||
((BloomTuple *)((Pointer)(tuple) + (state)->sizeOfBloomTuple))
|
||||
((BloomTuple *)((char *)(tuple) + (state)->sizeOfBloomTuple))
|
||||
|
||||
/* Preserved page numbers */
|
||||
#define BLOOM_METAPAGE_BLKNO (0)
|
||||
|
||||
@@ -324,7 +324,7 @@ BloomPageAddItem(BloomState *state, Page page, BloomTuple *tuple)
|
||||
{
|
||||
BloomTuple *itup;
|
||||
BloomPageOpaque opaque;
|
||||
Pointer ptr;
|
||||
char *ptr;
|
||||
|
||||
/* We shouldn't be pointed to an invalid page */
|
||||
Assert(!PageIsNew(page) && !BloomPageIsDeleted(page));
|
||||
@@ -340,7 +340,7 @@ BloomPageAddItem(BloomState *state, Page page, BloomTuple *tuple)
|
||||
|
||||
/* Adjust maxoff and pd_lower */
|
||||
opaque->maxoff++;
|
||||
ptr = (Pointer) BloomPageGetTuple(state, page, opaque->maxoff + 1);
|
||||
ptr = (char *) BloomPageGetTuple(state, page, opaque->maxoff + 1);
|
||||
((PageHeader) page)->pd_lower = ptr - page;
|
||||
|
||||
/* Assert we didn't overrun available space */
|
||||
|
||||
@@ -121,7 +121,7 @@ blbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
|
||||
if (BloomPageGetMaxOffset(page) == 0)
|
||||
BloomPageSetDeleted(page);
|
||||
/* Adjust pd_lower */
|
||||
((PageHeader) page)->pd_lower = (Pointer) itupPtr - page;
|
||||
((PageHeader) page)->pd_lower = (char *) itupPtr - page;
|
||||
/* Finish WAL-logging */
|
||||
GenericXLogFinish(gxlogState);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user