From ba250cc496b2e617823ff8111ef463b6adea27f4 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Mon, 11 Dec 2023 14:46:50 -0500 Subject: replace handles with union struct --- src/memory.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/memory.cpp') diff --git a/src/memory.cpp b/src/memory.cpp index 9d235db..7ad282c 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -344,18 +344,20 @@ void Pke_MemoryFlush() { } } -uint64_t Buckets_NewHandle(std::size_t bucketBytes, std::size_t alignment, uint64_t bucketItemCount, uint64_t &bucketIncrementer, uint64_t &bucketCounter, uint64_t &itemCounter, void*& buckets, bool &moved) { +PkeHandle Buckets_NewHandle(std::size_t bucketBytes, std::size_t alignment, uint32_t bucketItemCount, uint32_t &bucketIncrementer, uint32_t &bucketCounter, uint32_t &itemCounter, void*& buckets, bool &moved) { moved = false; - uint64_t newHandle{itemCounter | bucketCounter}; + PkeHandle returnValue { + .bucketIndex = bucketCounter, + .itemIndex = itemCounter, + }; - std::size_t calculatedAlignment = alignment < MINIMUM_ALIGNMENT ? MINIMUM_ALIGNMENT : alignment; - - itemCounter += uint64_t{1ULL << 32}; - if (itemCounter > uint64_t{(bucketItemCount - 1) << 32}) { + itemCounter += 1; + if (itemCounter > bucketItemCount) { itemCounter = 0ULL; bucketCounter += 1; } if (bucketCounter > bucketIncrementer) { + std::size_t calculatedAlignment = alignment < MINIMUM_ALIGNMENT ? MINIMUM_ALIGNMENT : alignment; moved = true; int64_t newIncrement = bucketIncrementer * 1.5; char * newBuckets = reinterpret_cast(Pke_New(bucketBytes * newIncrement, calculatedAlignment)); @@ -365,7 +367,7 @@ uint64_t Buckets_NewHandle(std::size_t bucketBytes, std::size_t alignment, uint6 bucketIncrementer = newIncrement; } - return newHandle; + return returnValue; } void Pke_DebugPrint() { -- cgit v1.2.3