chore: improve init/deinit methods

This commit is contained in:
2022-08-29 00:32:41 -05:00
parent aa52bb5917
commit 5f8c6833f4
11 changed files with 100 additions and 79 deletions

View File

@@ -27,8 +27,9 @@ pub fn init(alloc: Allocator, maybe_path: ?[]const u8) !Self {
};
}
pub fn deinit(self: Self) void {
pub fn deinit(self: *Self) void {
if (self.buf) |buf| self.alloc.free(buf);
self.* = undefined;
}
pub fn read(self: *Self, comptime T: type, r15: u32, addr: u32) T {

View File

@@ -17,8 +17,9 @@ pub fn init(alloc: Allocator) !Self {
};
}
pub fn deinit(self: Self) void {
pub fn deinit(self: *Self) void {
self.alloc.free(self.buf);
self.* = undefined;
}
pub fn read(self: *const Self, comptime T: type, address: usize) T {

View File

@@ -58,9 +58,10 @@ inline fn isLarge(self: *const Self) bool {
return self.buf.len > 0x100_0000;
}
pub fn deinit(self: Self) void {
self.alloc.free(self.buf);
pub fn deinit(self: *Self) void {
self.backup.deinit();
self.alloc.free(self.buf);
self.* = undefined;
}
pub fn read(self: *Self, comptime T: type, address: u32) T {

View File

@@ -17,8 +17,9 @@ pub fn init(alloc: Allocator) !Self {
};
}
pub fn deinit(self: Self) void {
pub fn deinit(self: *Self) void {
self.alloc.free(self.buf);
self.* = undefined;
}
pub fn read(self: *const Self, comptime T: type, address: usize) T {

View File

@@ -74,9 +74,10 @@ pub const Backup = struct {
return null;
}
pub fn deinit(self: Self) void {
pub fn deinit(self: *Self) void {
if (self.save_path) |path| self.writeSaveToDisk(self.alloc, path) catch |e| log.err("Failed to write save: {}", .{e});
self.alloc.free(self.buf);
self.* = undefined;
}
fn loadSaveFromDisk(self: *Self, allocator: Allocator, path: []const u8) !void {