From 0cb93874929e23476e028efb1161620d8748620b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Fri, 23 May 2025 15:30:48 +0200 Subject: [PATCH] feat: refactor1 --- src/console/main.zig | 5 ++--- src/core/app_state.zig | 10 +++++----- src/core/tab/tab.zig | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/console/main.zig b/src/console/main.zig index 5bb5b8e..f6ddee4 100644 --- a/src/console/main.zig +++ b/src/console/main.zig @@ -229,10 +229,8 @@ pub fn main() !void { defer allocator.free(start_full_name.path); var tab1 = try allocator.create(Tab); - defer allocator.destroy(tab1); tab1.init(&pool, &rootProvider, allocator); - defer tab1.deinit(); try tab1.setCurrentLocation(start_full_name); @@ -261,7 +259,8 @@ pub fn main() !void { }; var appState: AppState = AppState.init(allocator); - appState.currentTab = tab1; + try appState.addTab(tab1); + try appState.setCurrentTab(tab1); const model = try allocator.create(Model); defer allocator.destroy(model); diff --git a/src/core/app_state.zig b/src/core/app_state.zig index 986c545..d8ad66e 100644 --- a/src/core/app_state.zig +++ b/src/core/app_state.zig @@ -2,20 +2,20 @@ pub const UnknownTabError = error.UnknownTab; pub const AppState = struct { currentTab: *Tab = undefined, - tabs: std.ArrayList(Tab), + tabs: std.ArrayList(*Tab), currentTabChanged: Observable(*Tab), tabPreCurrentItemsUnload: Observable(*Tab), pub fn init(allocator: std.mem.Allocator) AppState { return .{ - .tabs = std.ArrayList(Tab).init(allocator), + .tabs = std.ArrayList(*Tab).init(allocator), .currentTabChanged = Observable(*Tab).init(allocator), .tabPreCurrentItemsUnload = Observable(*Tab).init(allocator), }; } - pub fn addTab(self: *AppState, tab: Tab) void { - self.tabs.append(tab); + pub fn addTab(self: *AppState, tab: *Tab) !void { + try self.tabs.append(tab); // tab.preCurrentItemsUnload.attach(.{ // .ctx = @ptrCast(@alignCast(self)), // .update = preCurrentItemsUnload, @@ -37,7 +37,7 @@ pub const AppState = struct { pub fn deinit(self: *AppState) void { self.tabPreCurrentItemsUnload.deinit(); self.currentTabChanged.deinit(); - for (self.tabs.items) |*tab| { + for (self.tabs.items) |tab| { tab.deinit(); } self.tabs.deinit(); diff --git a/src/core/tab/tab.zig b/src/core/tab/tab.zig index eebdbb8..73b254b 100644 --- a/src/core/tab/tab.zig +++ b/src/core/tab/tab.zig @@ -127,6 +127,7 @@ pub const Tab = struct { c.item.deinit(); } self._private.currentItemsAllocator.deinit(); + self.allocator.destroy(self); } };