aboutsummaryrefslogtreecommitdiff
path: root/src/eval/paragraph.zig
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-04-27 17:45:13 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2026-04-27 17:45:13 +0200
commit3b0e9424a66058da82d11d432da886ec7b6ce7eb (patch)
tree0ad906e3b7d945405cdfeb9ff95b02546e1ed4bb /src/eval/paragraph.zig
parentef5c0341ca15f6862294802103b02992b29609e8 (diff)
perf(eval): reduce memory syscall
Diffstat (limited to 'src/eval/paragraph.zig')
-rw-r--r--src/eval/paragraph.zig17
1 files changed, 4 insertions, 13 deletions
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(), "<p>hello world</p>");
const link = (try Link.init(alloc, (try Element.Literal.init(alloc, "foo")).element(), "example.org")).element();