diff --git a/src/image.zig b/src/image.zig index 46acb24..51c1eef 100644 --- a/src/image.zig +++ b/src/image.zig @@ -179,20 +179,17 @@ pub const Image = struct { } pub fn close(self: *Image) void { + self.allocator.free(self.path); + self.allocator.free(self.curpath); + var st: i32 = c.sf_close(self.sndfile); + if (st != 0) { std.debug.warn("Failed to close {} ({})\n", .{ self.path, c.sf_error_number(st), }); } - - self.allocator.free(self.path); - self.allocator.free(self.curpath); - - var allocator = self.allocator; - self.* = undefined; - allocator.destroy(self); } pub fn read(self: *Image, file_chans: c_int, buf: []f32) bool { diff --git a/src/main.zig b/src/main.zig index 8ea264d..962684b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -231,12 +231,7 @@ pub fn doRepl(allocator: *std.mem.Allocator, args_it: anytype) !void { } pub fn main() !void { - // const allocator = std.heap.page_allocator; - var allocator_instance = std.heap.GeneralPurposeAllocator(.{}){}; - defer { - _ = allocator_instance.deinit(); - } - const allocator = &allocator_instance.allocator; + const allocator = std.heap.page_allocator; var lang = langs.Lang.init(allocator); defer lang.deinit(); diff --git a/src/runner.zig b/src/runner.zig index 442068d..47f2cab 100644 --- a/src/runner.zig +++ b/src/runner.zig @@ -108,7 +108,6 @@ pub const Runner = struct { // we don't copy load_path into a temporary file because we're already // loading it under the SFM_READ mode, which won't cause any destructive // operations on the file. - if (self.image) |image| image.close(); self.image = try Image.open(self.allocator, load_path); }