aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-06-22 01:13:10 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-06-22 01:13:10 -0400
commit726674b2bd0ac8159c961a944012b096d08e5615 (patch)
tree360ef32752d804e10c8cb8093a0ed8dc1f5ca18b /std
parentb5f9033d8226019a043b89574dada3dd06d7d5fb (diff)
downloadzig-726674b2bd0ac8159c961a944012b096d08e5615.tar.gz
zig-726674b2bd0ac8159c961a944012b096d08e5615.zip
fix ArenaAllocator
Diffstat (limited to 'std')
-rw-r--r--std/heap.zig28
-rw-r--r--std/std.zig2
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");