summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 14:37:21 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:16 -0300
commitd678a63e0abf2ba8994225a9f0fd0047fee4025a (patch)
tree9c1a13fe7895ec162e9ee24de2913f2375375241 /src/gui
parent25c847e28ae77f5c648d423d64011736f55eda4a (diff)
downloadpardes-d678a63e0abf2ba8994225a9f0fd0047fee4025a.tar.gz
pardes-d678a63e0abf2ba8994225a9f0fd0047fee4025a.zip
Every catch unreachable, orelse unreachable and syscall assert outside tests is a real refusal or says why it cannot fire
A sweep for round 23's crash: a run's answer (pty/run) was bufPrint'd into 48 bytes with catch unreachable, so a foreground program's long name (macOS gives up to 32 bytes) panicked; it now cuts at the room, keeping its newline, in 96 bytes. The rest were numbers into buffers sized for them, a braille codepoint, pthread calls on the queue's own mutex, and pdf_view's resolved outline entries: each now carries a one-line comment saying why it cannot fire. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/gui.zig3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/gui.zig b/src/gui/gui.zig
index e110b3ab..b34b314d 100644
--- a/src/gui/gui.zig
+++ b/src/gui/gui.zig
@@ -937,6 +937,8 @@ const Queue = struct {
completion_len: usize = 0,
fn lock(q: *Queue) void {
+ // unreachable failures: pthread calls on this queue's own initialised, non-recursive
+ // mutex and condition fail only on misuse (EINVAL, EDEADLK), never on input.
std.debug.assert(libc.pthread_mutex_lock(&q.mutex) == .SUCCESS);
}
@@ -8334,6 +8336,7 @@ fn captureFrame(g: *Gui, gpa: std.mem.Allocator, cmd: *c.SDL_GPUCommandBuffer, t
const pixels: [*]const u8 = @ptrCast(mapped);
try writeCapturePpm(g, gpa, pixels[0..size], sw, sh, "latest");
var name: [24]u8 = undefined;
+ // unreachable below: "transition-" or "frame-" and a u32 fit 24
if (transition) |frame| try writeCapturePpm(g, gpa, pixels[0..size], sw, sh, std.fmt.bufPrint(&name, "transition-{d}", .{frame}) catch unreachable);
if (g.capture_series) try writeCapturePpm(g, gpa, pixels[0..size], sw, sh, std.fmt.bufPrint(&name, "frame-{d:0>5}", .{g.captured}) catch unreachable);
g.captured +%= 1;