From c1bb27c45046ea242892af16b5655110537f6540 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Thu, 19 Mar 2026 06:52:41 +0800 Subject: [PATCH] better encapsulate arena reset --- src/ArenaPool.zig | 5 +++++ src/browser/StyleManager.zig | 5 +---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ArenaPool.zig b/src/ArenaPool.zig index 2f8de17f..608445f6 100644 --- a/src/ArenaPool.zig +++ b/src/ArenaPool.zig @@ -100,6 +100,11 @@ pub fn reset(_: *const ArenaPool, allocator: Allocator, retain: usize) void { _ = arena.reset(.{ .retain_with_limit = retain }); } +pub fn resetRetain(_: *const ArenaPool, allocator: Allocator) void { + const arena: *std.heap.ArenaAllocator = @ptrCast(@alignCast(allocator.ptr)); + _ = arena.reset(.retain_capacity); +} + const testing = std.testing; test "arena pool - basic acquire and use" { diff --git a/src/browser/StyleManager.zig b/src/browser/StyleManager.zig index 000bd89d..a7765814 100644 --- a/src/browser/StyleManager.zig +++ b/src/browser/StyleManager.zig @@ -90,10 +90,7 @@ fn rebuildIfDirty(self: *StyleManager) !void { self.dirty = false; const item_count = self.rules.items.len; - - const arena: *std.heap.ArenaAllocator = @ptrCast(@alignCast(self.arena.ptr)); - _ = arena.reset(.retain_capacity); - + self.page._session.arena_pool.resetRetain(self.arena); self.rules = try .initCapacity(self.arena, item_count); const sheets = self.page.document._style_sheets orelse return; for (sheets._sheets.items) |sheet| {