better encapsulate arena reset

This commit is contained in:
Karl Seguin
2026-03-19 06:52:41 +08:00
parent dda5e2c542
commit c1bb27c450
2 changed files with 6 additions and 4 deletions

View File

@@ -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" {

View File

@@ -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| {