diff options
| author | Taylan Kammer <taylan.kammer@gmail.com> | 2025-03-02 22:13:31 +0100 |
|---|---|---|
| committer | Taylan Kammer <taylan.kammer@gmail.com> | 2025-03-02 22:13:31 +0100 |
| commit | fbcedd74510b02a8a56acfbb3fb115394fcbdfd8 (patch) | |
| tree | 0ef5e76f063d59582e871f11818927ad0646c9f4 /src/libzisp/gc.zig | |
| parent | 45ed12c1bcb8db5cb35c35495023ffaf24e2877c (diff) | |
use mem pool for cons
Diffstat (limited to 'src/libzisp/gc.zig')
| -rw-r--r-- | src/libzisp/gc.zig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libzisp/gc.zig b/src/libzisp/gc.zig index 6704102..92b4387 100644 --- a/src/libzisp/gc.zig +++ b/src/libzisp/gc.zig @@ -2,11 +2,21 @@ const std = @import("std"); const value = @import("value.zig"); +const Value = value.Value; const Hval = value.Hval; var _gpa: std.heap.GeneralPurposeAllocator(.{}) = .init; const gpa = _gpa.allocator(); +var cpool = std.heap.MemoryPool([2]Value).init(gpa); + +pub fn cons(v1: Value, v2: Value) *[2]Value { + const mem = cpool.create() catch @panic("OOM"); + mem[0] = v1; + mem[1] = v2; + return mem; +} + pub fn alloc(count: usize) []Hval { return gpa.alloc(Hval, count) catch @panic("OOM"); } |
