fixed: segmentation fault on windows
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 11 Dec 2023 02:47:32 +0000 (20:47 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 11 Dec 2023 02:47:32 +0000 (20:47 -0600)
core/os/dir.onyx
runtime/src/ort_directories.h

index 2cd83ed3251df5f4ccede1c783f270795eb2296c..697ae3151548f3f8b902ed1149a90a8ab2e92d53 100644 (file)
@@ -61,7 +61,10 @@ list_directory :: (path: str) -> Iterator(DirectoryEntry) {
     }
 
     close :: (use c: &Context) {
-        dir_close(dir);
+        if opened {
+            dir_close(dir);
+        }
+
         cfree(c);
     }
 
index a22852465079d2477835cc7285c2f54d3a26ee7e..80c0f2617327521dd2ac06152625ae95534945a0 100644 (file)
@@ -111,6 +111,7 @@ ONYX_DEF(__dir_read, (WASM_I64, WASM_I32), (WASM_I32)) {
 ONYX_DEF(__dir_close, (WASM_I64), ()) {
 #ifdef _BH_WINDOWS
     Windows_Directory_Opened* dir = (Windows_Directory_Opened *) params->data[0].of.i64;
+    if (dir == NULL) return NULL;
 
     FindClose(dir->hndl);
     free(dir);