| ... | ... | @@ -87,6 +87,13 @@ pub fn resolveGlobalCacheDir(allocator: *mem.Allocator) ![]u8 { |
| 87 | 87 | return fs.getAppDataDir(allocator, appname); |
| 88 | 88 | } |
| 89 | 89 | |
| 90 | pub fn openGlobalCacheDir() !fs.Dir { |
| 91 | var buf: [fs.MAX_PATH_BYTES]u8 = undefined; |
| 92 | var fba = std.heap.FixedBufferAllocator.init(&buf); |
| 93 | const path_name = try resolveGlobalCacheDir(&fba.allocator); |
| 94 | return fs.cwd().makeOpenPath(path_name, .{}); |
| 95 | } |
| 96 | |
| 90 | 97 | var compiler_id_mutex = std.Mutex{}; |
| 91 | 98 | var compiler_id: [16]u8 = undefined; |
| 92 | 99 | var compiler_id_computed = false; |
| ... | ... | @@ -99,11 +106,7 @@ pub fn resolveCompilerId(gpa: *mem.Allocator) ![16]u8 { |
| 99 | 106 | return compiler_id; |
| 100 | 107 | compiler_id_computed = true; |
| 101 | 108 | |
| 102 | | const global_cache_dir = try resolveGlobalCacheDir(gpa); |
| 103 | | defer gpa.free(global_cache_dir); |
| 104 | | |
| 105 | | // TODO Introduce openGlobalCacheDir which returns a dir handle rather than a string. |
| 106 | | var cache_dir = try fs.cwd().openDir(global_cache_dir, .{}); |
| 109 | var cache_dir = try openGlobalCacheDir(); |
| 107 | 110 | defer cache_dir.close(); |
| 108 | 111 | |
| 109 | 112 | var ch = try CacheHash.init(gpa, cache_dir, "exe"); |