From 35e57fdef8826685a2aeaebe9b2532cf0a44df8c Mon Sep 17 00:00:00 2001 From: John Leidegren Date: Sat, 8 Jun 2024 15:58:34 +0200 Subject: [PATCH 1/2] Fixed error handling in read_dir on Windows --- core/os/dir_windows.odin | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/os/dir_windows.odin b/core/os/dir_windows.odin index 491507313..df02f54e7 100644 --- a/core/os/dir_windows.odin +++ b/core/os/dir_windows.odin @@ -87,8 +87,12 @@ read_dir :: proc(fd: Handle, n: int, allocator := context.allocator) -> (fi: []F find_data := &win32.WIN32_FIND_DATAW{} find_handle := win32.FindFirstFileW(raw_data(wpath_search), find_data) + if find_handle == win32.INVALID_HANDLE_VALUE { + e = Errno(win32.GetLastError()) + return + } defer win32.FindClose(find_handle) - for n != 0 && find_handle != nil { + for n != 0 { fi: File_Info fi = find_data_to_file_info(path, find_data) if fi.name != "" { From de7d3e248741b584ab2afb54322a8bb3e612a3f0 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Sat, 8 Jun 2024 17:00:38 +0200 Subject: [PATCH 2/2] Update dir_windows.odin --- core/os/dir_windows.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/os/dir_windows.odin b/core/os/dir_windows.odin index df02f54e7..9ca78948e 100644 --- a/core/os/dir_windows.odin +++ b/core/os/dir_windows.odin @@ -88,8 +88,8 @@ read_dir :: proc(fd: Handle, n: int, allocator := context.allocator) -> (fi: []F find_data := &win32.WIN32_FIND_DATAW{} find_handle := win32.FindFirstFileW(raw_data(wpath_search), find_data) if find_handle == win32.INVALID_HANDLE_VALUE { - e = Errno(win32.GetLastError()) - return + err = Errno(win32.GetLastError()) + return dfi[:], err } defer win32.FindClose(find_handle) for n != 0 {