From b0bd7c0be9fdce732ed10b90b68ea7d631f4e8ae Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:36:48 +1100 Subject: Add defers for destroying walkers --- src/server/build.odin | 1 + src/server/references.odin | 1 + src/server/workspace_symbols.odin | 1 + tools/odinfmt/main.odin | 1 + 4 files changed, 4 insertions(+) diff --git a/src/server/build.odin b/src/server/build.odin index 3f8b04f..d2a1b97 100644 --- a/src/server/build.odin +++ b/src/server/build.odin @@ -135,6 +135,7 @@ append_packages :: proc( allocator := context.temp_allocator, ) { w := os.walker_create(path) + defer os.walker_destroy(&w) for info in os.walker_walk(&w) { if info.type != .Directory && filepath.ext(info.name) == ".odin" { dir := filepath.dir(info.fullpath, allocator) diff --git a/src/server/references.odin b/src/server/references.odin index 6645289..aeebd43 100644 --- a/src/server/references.odin +++ b/src/server/references.odin @@ -278,6 +278,7 @@ resolve_references :: proc( for workspace in common.config.workspace_folders { uri, _ := common.parse_uri(workspace.uri, context.temp_allocator) w := os.walker_create(uri.path) + defer os.walker_destroy(&w) for info in os.walker_walk(&w) { if info.type == .Directory { continue diff --git a/src/server/workspace_symbols.odin b/src/server/workspace_symbols.odin index b6f42c8..f732e8b 100644 --- a/src/server/workspace_symbols.odin +++ b/src/server/workspace_symbols.odin @@ -29,6 +29,7 @@ get_workspace_symbols :: proc(query: string) -> (workspace_symbols: []WorkspaceS pkgs := make([dynamic]string, 0, context.temp_allocator) w := os.walker_create(uri.path) + defer os.walker_destroy(&w) for info in os.walker_walk(&w) { if info.type == .Directory { dir := filepath.dir(info.fullpath, context.temp_allocator) diff --git a/tools/odinfmt/main.odin b/tools/odinfmt/main.odin index 54eab88..69ad5cf 100644 --- a/tools/odinfmt/main.odin +++ b/tools/odinfmt/main.odin @@ -117,6 +117,7 @@ main :: proc() { } else if os.is_dir(args.path) { files: [dynamic]string w := os.walker_create(args.path) + defer os.walker_destroy(&w) for info in os.walker_walk(&w) { if info.type == .Directory { continue -- cgit v1.2.3