mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
Fix bug in growable bitset. Always insert 0xAA in malloc on testing.
This commit is contained in:
@@ -139,7 +139,7 @@ fn bool GrowableBitSet.get(&self, usz i) @operator([]) @inline
|
||||
fn usz GrowableBitSet.len(&self) @operator(len)
|
||||
{
|
||||
usz n = self.data.len() * BITS;
|
||||
if (n > 0) n -= (usz)self.data[n - 1].ctz() - 1;
|
||||
if (n > 0) n -= (usz)self.data[^1].clz();
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
@@ -106,8 +106,14 @@ fn void*! libc_allocator_fn(Allocator* unused, usz bytes, usz alignment, usz off
|
||||
{
|
||||
case ALIGNED_ALLOC:
|
||||
data = @aligned_alloc(libc::malloc, bytes, alignment, offset)!!;
|
||||
$if env::TESTING:
|
||||
for (usz i = 0; i < bytes; i++) ((char*)data)[i] = 0xAA;
|
||||
$endif
|
||||
case ALLOC:
|
||||
data = libc::malloc(bytes);
|
||||
$if env::TESTING:
|
||||
for (usz i = 0; i < bytes; i++) ((char*)data)[i] = 0xAA;
|
||||
$endif
|
||||
case ALIGNED_CALLOC:
|
||||
data = @aligned_calloc(fn void*(usz bytes) => libc::calloc(bytes, 1), bytes, alignment, offset)!!;
|
||||
case CALLOC:
|
||||
|
||||
Reference in New Issue
Block a user