From 1612b8406949f2924073942f30e501a37c30359e Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Mon, 15 Jan 2024 19:33:16 -0800 Subject: [PATCH] Fixed error on Windows [skip ci] --- src/hnsw.h | 8 ++++---- src/hnswutils.c | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/hnsw.h b/src/hnsw.h index b89efc4..0ee3cf7 100644 --- a/src/hnsw.h +++ b/src/hnsw.h @@ -104,9 +104,9 @@ /* Pointer macros */ #define HnswPtrAccess(base, hp) ((base) == NULL ? (hp).ptr : relptr_access(base, (hp).relptr)) -#define HnswPtrStore(base, hp, value) ((base) == NULL ? (hp).ptr = (value) : (void) relptr_store(base, (hp).relptr, value)) +#define HnswPtrStore(base, hp, value) ((base) == NULL ? (void) ((hp).ptr = (value)) : (void) relptr_store(base, (hp).relptr, value)) #define HnswPtrIsNull(base, hp) ((base) == NULL ? (hp).ptr == NULL : relptr_is_null((hp).relptr)) -#define HnswPtrSetNull(base, hp) ((base) == NULL ? (hp).ptr = NULL : (void) ((hp).relptr.relptr_off = 0)) +#define HnswPtrSetNull(base, hp) ((base) == NULL ? (void) ((hp).ptr = NULL) : (void) ((hp).relptr.relptr_off = 0)) #define HnswPtrEqual(base, hp1, hp2) ((base) == NULL ? (hp1).ptr == (hp2).ptr : relptr_offset((hp1).relptr) == relptr_offset((hp2).relptr)) /* For code paths dedicated to each type */ @@ -439,8 +439,8 @@ void hnswrescan(IndexScanDesc scan, ScanKey keys, int nkeys, ScanKey orderbys, bool hnswgettuple(IndexScanDesc scan, ScanDirection dir); void hnswendscan(IndexScanDesc scan); -static inline -HnswNeighborArray * HnswGetNeighbors(char *base, HnswElement element, int lc) +static inline HnswNeighborArray * +HnswGetNeighbors(char *base, HnswElement element, int lc) { HnswNeighborArrayPtr *neighborList = HnswPtrAccess(base, element->neighbors); diff --git a/src/hnswutils.c b/src/hnswutils.c index 8c29cd8..d291640 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -697,13 +697,16 @@ AddToVisited(char *base, visited_hash v, HnswCandidate * hc, Relation index, boo static inline bool CountElement(char *base, HnswElement skipElement, HnswCandidate * hc) { + HnswElement e; + if (skipElement == NULL) return true; /* Ensure does not access heaptidsLength during in-memory build */ pg_memory_barrier(); - return HnswPtrAccess(base, hc->element)->heaptidsLength != 0; + e = HnswPtrAccess(base, hc->element); + return e->heaptidsLength != 0; } /*