From 3b0e9424a66058da82d11d432da886ec7b6ce7eb Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 27 Apr 2026 17:45:13 +0200 Subject: perf(eval): reduce memory syscall --- src/eval/paragraph.zig | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'src/eval/paragraph.zig') diff --git a/src/eval/paragraph.zig b/src/eval/paragraph.zig index b076081..e57f995 100644 --- a/src/eval/paragraph.zig +++ b/src/eval/paragraph.zig @@ -26,17 +26,7 @@ pub const Link = struct { } pub fn element(self: *Self) Element { - return .{ .ptr = self, .vtable = .{ .deinit = destroy, .html = html } }; - } - - pub fn deinit(self: *Self, alloc: Allocator) void { - destroy(self, alloc); - } - - fn destroy(context: *anyopaque, alloc: Allocator) void { - var self: *Self = @ptrCast(@alignCast(context)); - self.content.deinit(alloc); - alloc.destroy(self); + return .{ .ptr = self, .vtable = .{ .html = html } }; } fn html(context: *anyopaque, alloc: Allocator) HTML.Error!HTML { @@ -59,14 +49,15 @@ fn doTest(alloc: Allocator, el: Element, exp: []const u8) !void { } test "paragraph" { - const alloc = std.testing.allocator; + var arena = std.heap.ArenaAllocator.init(std.testing.allocator); + defer arena.deinit(); + const alloc = arena.allocator(); const lit = (try Element.Literal.init(alloc, "hello world")).element(); try doTest(alloc, lit, "hello world"); var p = try Block.init(alloc); try p.content.append(alloc, lit); - defer p.deinit(alloc); try doTest(alloc, p.element(), "

hello world

"); const link = (try Link.init(alloc, (try Element.Literal.init(alloc, "foo")).element(), "example.org")).element(); -- cgit v1.2.3