Browse Source

Fix `full_path_from_name` allocator behaviour

gingerBill 4 years ago
parent
commit
ba6c63e366
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/os/stat_windows.odin

+ 2 - 2
core/os/stat_windows.odin

@@ -11,14 +11,14 @@ full_path_from_name :: proc(name: string, allocator := context.allocator) -> (pa
 	}
 	p := win32.utf8_to_utf16(name, context.temp_allocator);
 	buf := make([dynamic]u16, 100, allocator);
+	defer delete(buf);
 	for {
 		n := win32.GetFullPathNameW(raw_data(p), u32(len(buf)), raw_data(buf), nil);
 		if n == 0 {
-			delete(buf);
 			return "", Errno(win32.GetLastError());
 		}
 		if n <= u32(len(buf)) {
-			return win32.utf16_to_utf8(buf[:n]), ERROR_NONE;
+			return win32.utf16_to_utf8(buf[:n], allocator), ERROR_NONE;
 		}
 		resize(&buf, len(buf)*2);
 	}