From fbcedd74510b02a8a56acfbb3fb115394fcbdfd8 Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Sun, 2 Mar 2025 22:13:31 +0100 Subject: use mem pool for cons --- src/libzisp/gc.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/libzisp/gc.zig') 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"); } -- cgit v1.2.3