blob: 3fe8f1307f56a37f199d2d9688b644e5197008e5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
const std = @import("std");
const STATIC_MEMORY_SIZE = 256000;
pub var static_manager: ?std.heap.FixedBufferAllocator = null;
pub var dynamic_manager: ?std.heap.ArenaAllocator = null;
pub var root_manager: ?std.heap.ArenaAllocator = null;
pub var static: *std.mem.Allocator = undefined;
pub var dynamic: *std.mem.Allocator = undefined;
pub fn setup(root: *std.mem.Allocator) !void {
root_manager = std.heap.ArenaAllocator.init(root);
var buf = try root_manager.?.child_allocator.alloc(u8, STATIC_MEMORY_SIZE);
dynamic_manager = std.heap.ArenaAllocator.init(root_manager.?.child_allocator);
static_manager = std.heap.FixedBufferAllocator.init(buf);
static = root_manager.?.child_allocator;
dynamic_manager = std.heap.ArenaAllocator.init(root);
dynamic = dynamic_manager.?.child_allocator;
// static = @ptrCast(*std.mem.Allocator, &stat.allocator);
}
test "GlobalAllocator" {
try setup(std.heap.page_allocator);
var testType = try static.alloc(u8, 10);
testType[1] = 1;
}
|