From 9e540148489fa7fb4a4dec9ef6869cb1c0eb1445 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Mon, 10 Feb 2025 23:55:02 +0100 Subject: [PATCH] Fix issue in GrowableBitSet with sanitizers. --- lib/std/collections/bitset.c3 | 11 +++-------- releasenotes.md | 1 + 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/std/collections/bitset.c3 b/lib/std/collections/bitset.c3 index c6dfff35c..e280d256d 100644 --- a/lib/std/collections/bitset.c3 +++ b/lib/std/collections/bitset.c3 @@ -117,15 +117,10 @@ fn void GrowableBitSet.set(&self, usz i) usz q = i / BITS; usz r = i % BITS; usz current_len = self.data.len(); - if (q >= current_len) + while (q >= current_len) { - usz n = q + 1; - self.data.reserve(n); - if (n - 1 >= current_len) - { - self.data.entries[current_len .. (n - 1)] = 0; - } - self.data.size = n; + self.data.push(0); + current_len++; } self.data.set(q, self.data[q] | (1 << r)); } diff --git a/releasenotes.md b/releasenotes.md index 373b70cbc..1ff7965de 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -61,6 +61,7 @@ - Issue when having an empty `Path` or just "." - `set_env` would leak memory. - Fix issue where aligned bitstructs did not store/load with the given alignment. +- Fix issue in GrowableBitSet with sanitizers. ### Stdlib changes - Added '%h' and '%H' for printing out binary data in hexadecimal using the formatter.