aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common.zig11
-rw-r--r--day1.zig4
-rw-r--r--day2.zig4
3 files changed, 9 insertions, 10 deletions
diff --git a/common.zig b/common.zig
index f724940..c38beb1 100644
--- a/common.zig
+++ b/common.zig
@@ -2,16 +2,13 @@ const std = @import("std");
pub const Setup = struct {
pub const Part = enum { pt1, pt2 };
-
- gpa: std.heap.GeneralPurposeAllocator(.{}),
a: std.mem.Allocator,
input: []const u8,
part: Part,
- pub fn get() !Setup {
+ pub fn get(a: std.mem.Allocator) !Setup {
var res: Setup = undefined;
- res.gpa = std.heap.GeneralPurposeAllocator(.{}){};
- res.a = res.gpa.allocator();
+ res.a = a;
var p = std.process.args();
var file: []const u8 = "";
if (!p.skip()) return error.NoProgramName;
@@ -39,8 +36,6 @@ pub const Setup = struct {
return res;
}
pub fn deinit(self: *Setup) void {
- _ = self;
- //self.a.free(self.input); // For some reason this is freezing
- //_ = self.gpa.deinit(); // and if we don't free, then gpa.deinit whinges that we leaked memory :)
+ self.a.free(self.input); // For some reason this is freezing
}
};
diff --git a/day1.zig b/day1.zig
index 5258b4e..5143fdc 100644
--- a/day1.zig
+++ b/day1.zig
@@ -49,7 +49,9 @@ const w2d = std.comptime_string_map.ComptimeStringMap(u8, .{
});
pub fn main() !void {
- var s = try Setup.get();
+ var gpa = std.heap.GeneralPurposeAllocator(.{}){};
+ defer _ = gpa.deinit();
+ var s = try Setup.get(gpa.allocator());
defer s.deinit();
var l = std.mem.splitScalar(u8, s.input, '\n');
var t: u64 = 0;
diff --git a/day2.zig b/day2.zig
index 9ce71d9..c29bd0e 100644
--- a/day2.zig
+++ b/day2.zig
@@ -16,7 +16,9 @@ const Colour = enum {
};
pub fn main() !void {
- var setup = try Setup.get();
+ var gpa = std.heap.GeneralPurposeAllocator(.{}){};
+ defer _ = gpa.deinit();
+ var setup = try Setup.get(gpa.allocator());
defer setup.deinit();
var sum: u32 = 0;
var lines = std.mem.splitScalar(u8, setup.input, '\n');