Commit 29c56a8aa7

jiacai2050 <dev@liujiacai.net>
2023-03-04 03:47:25
fix package redeclaration when cache is not found
1 parent 7b01af2
Changed files (1)
src/Package.zig
@@ -432,6 +432,12 @@ fn fetchAndUnpack(
         const build_root = try global_cache_directory.join(gpa, &.{pkg_dir_sub_path});
         errdefer gpa.free(build_root);
 
+        var pkg_dir = global_cache_directory.handle.openDir(pkg_dir_sub_path, .{}) catch |err| switch (err) {
+            error.FileNotFound => break :cached,
+            else => |e| return e,
+        };
+        errdefer pkg_dir.close();
+
         try build_roots_source.writer().print("    pub const {s} = \"{}\";\n", .{
             std.zig.fmtId(fqn), std.zig.fmtEscapes(build_root),
         });
@@ -444,12 +450,6 @@ fn fetchAndUnpack(
             return gop.value_ptr.*;
         }
 
-        var pkg_dir = global_cache_directory.handle.openDir(pkg_dir_sub_path, .{}) catch |err| switch (err) {
-            error.FileNotFound => break :cached,
-            else => |e| return e,
-        };
-        errdefer pkg_dir.close();
-
         const ptr = try gpa.create(Package);
         errdefer gpa.destroy(ptr);