diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-06-22 01:13:10 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-06-22 01:13:10 -0400 |
| commit | 726674b2bd0ac8159c961a944012b096d08e5615 (patch) | |
| tree | 360ef32752d804e10c8cb8093a0ed8dc1f5ca18b /std | |
| parent | b5f9033d8226019a043b89574dada3dd06d7d5fb (diff) | |
| download | zig-726674b2bd0ac8159c961a944012b096d08e5615.tar.gz zig-726674b2bd0ac8159c961a944012b096d08e5615.zip | |
fix ArenaAllocator
Diffstat (limited to 'std')
| -rw-r--r-- | std/heap.zig | 28 | ||||
| -rw-r--r-- | std/std.zig | 2 |
2 files changed, 15 insertions, 15 deletions
diff --git a/std/heap.zig b/std/heap.zig index a8fc2aa939..2b5316f6c7 100644 --- a/std/heap.zig +++ b/std/heap.zig @@ -368,9 +368,9 @@ pub const ArenaAllocator = struct { var it = self.buffer_list.first; while (it) |node| { // this has to occur before the free because the free frees node - it = node.next; - + const next_it = node.next; self.child_allocator.free(node.data); + it = next_it; } } @@ -764,18 +764,18 @@ test "HeapAllocator" { } } -//test "ArenaAllocator" { -// var direct_allocator = DirectAllocator.init(); -// defer direct_allocator.deinit(); -// -// var arena_allocator = ArenaAllocator.init(&direct_allocator.allocator); -// defer arena_allocator.deinit(); -// -// try testAllocator(&arena_allocator.allocator); -// try testAllocatorAligned(&arena_allocator.allocator, 16); -// try testAllocatorLargeAlignment(&arena_allocator.allocator); -// try testAllocatorAlignedShrink(&arena_allocator.allocator); -//} +test "ArenaAllocator" { + var direct_allocator = DirectAllocator.init(); + defer direct_allocator.deinit(); + + var arena_allocator = ArenaAllocator.init(&direct_allocator.allocator); + defer arena_allocator.deinit(); + + try testAllocator(&arena_allocator.allocator); + try testAllocatorAligned(&arena_allocator.allocator, 16); + try testAllocatorLargeAlignment(&arena_allocator.allocator); + try testAllocatorAlignedShrink(&arena_allocator.allocator); +} var test_fixed_buffer_allocator_memory: [80000 * @sizeOf(u64)]u8 = undefined; test "FixedBufferAllocator" { diff --git a/std/std.zig b/std/std.zig index d8873d6f6a..6ce864fa26 100644 --- a/std/std.zig +++ b/std/std.zig @@ -88,7 +88,7 @@ test "std" { _ = @import("fmt.zig"); _ = @import("fs.zig"); _ = @import("hash.zig"); - _ = @import("heap.zig"); // TODO commented test + _ = @import("heap.zig"); _ = @import("io.zig"); //_ = @import("json.zig"); //_ = @import("lazy_init.zig"); |
