diff options
author | jjanzen <jjanzen@jjanzen.ca> | 2025-01-22 14:22:12 -0600 |
---|---|---|
committer | jjanzen <jjanzen@jjanzen.ca> | 2025-01-22 14:22:12 -0600 |
commit | 14c2530817f20986b51f611ef637d09f43aac23c (patch) | |
tree | cc948750173fd7c0aba570f462b65ad1fe405121 /src/main.zig | |
parent | 8ecefa4b3fd56fc87f822f3dbefa1ce1ef6601d8 (diff) |
fix memory leak and implement stub front end
Diffstat (limited to 'src/main.zig')
-rw-r--r-- | src/main.zig | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/src/main.zig b/src/main.zig index f55935d..9584038 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,38 +1,23 @@ const std = @import("std"); const IO = @import("frontend/ncurses.zig").IO; -const Action = @import("actions.zig").Action; +const run = @import("run.zig"); -fn run(allocator: std.mem.Allocator) !void { - var io = try IO.init(allocator); - defer { - io.deinit(); - } - - try io.displayMessage("Initialized"); - - var action = Action.illegal; - var tick_count: usize = 0; - while (action != Action.exit) { - const str = try std.fmt.allocPrint(allocator, "{}", .{tick_count}); - defer allocator.free(str); - try io.displayMessage(str); +pub fn main() u8 { + var status: u8 = 0; - action = try io.waitForTick(); - switch (action) { - Action.tick => { - tick_count += 1; - }, - else => {}, + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; + const allocator = gpa.allocator(); + defer { + const deinit_status = gpa.deinit(); + if (deinit_status == .leak) { + status = 1; } } -} -pub fn main() u8 { - var gpa = std.heap.GeneralPurposeAllocator(.{}){}; - const allocator = gpa.allocator(); - run(allocator) catch { - return 1; - }; + var io = IO.init(allocator) catch return 1; + defer io.deinit(); + + run.run(allocator, &io) catch return 1; - return 0; + return status; } |