diff options
Diffstat (limited to 'src/memory.cpp')
| -rw-r--r-- | src/memory.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
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<char *>(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() { |
