summaryrefslogtreecommitdiff
path: root/test/fs_bench.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-27 20:14:04 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commitacd9e032a147f4aa7ad49110dc2f4fb945e7a9bb (patch)
tree6b81d7ac0b759472bd5c1afb1fc15cd6c930ac79 /test/fs_bench.zig
parent28c814aa5cfea23e8950ef007916ffc5d089288d (diff)
downloadpardes-acd9e032a147f4aa7ad49110dc2f4fb945e7a9bb.tar.gz
pardes-acd9e032a147f4aa7ad49110dc2f4fb945e7a9bb.zip
Keep a pane's filesystem state on the Pane instead of a slot-indexed table
addr, limit, the event queue and its readers, pty/data's queue, a waiting run and the /log announcement flag lived in p.fs.panes[slot], reset when the pane went; a reused slot is how the bug class came in. acme keeps the same state on its Window (editors/acme/dat.h:226-266), so now Pane.fs holds it: announced, retired (noteRetire, which still answers a waiting run and drops the listener count first) and freed with the pane itself. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'test/fs_bench.zig')
-rw-r--r--test/fs_bench.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/fs_bench.zig b/test/fs_bench.zig
index 74b7b5da..00601ca3 100644
--- a/test/fs_bench.zig
+++ b/test/fs_bench.zig
@@ -285,7 +285,7 @@ pub fn main(init: std.process.Init) !void {
const initial_bytes = pane.file.?.content.len;
key_body_bytes = initial_bytes;
if (scripted) {
- keys.core.fs.panes[keys.file_id].readers = 1;
+ keys.core.panes[keys.file_id].?.fs.readers = 1;
keys.core.fs.listeners = 1;
}
counting.allocations = 0;
@@ -297,7 +297,7 @@ pub fn main(init: std.process.Init) !void {
const elapsed = nowNs() - start;
if (pane.file.?.content.len != initial_bytes + key_reps or pane.cur_col != key_reps or
!std.mem.allEqual(u8, pane.file.?.content[0..key_reps], 'x')) return error.MissingKeystroke;
- const events = &keys.core.fs.panes[keys.file_id].events;
+ const events = &keys.core.panes[keys.file_id].?.fs.events;
if (scripted) for (0..key_reps) |i| {
var buf: [64]u8 = undefined;
const expected = try std.fmt.bufPrint(&buf, "KI{d} {d} 0 1 x\n", .{ i, i + 1 });