aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Compilation.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index f458fe9f61..8ea6b545b8 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -3849,7 +3849,11 @@ fn setMiscFailure(
) Allocator.Error!void {
try comp.misc_failures.ensureUnusedCapacity(comp.gpa, 1);
const msg = try std.fmt.allocPrint(comp.gpa, format, args);
- comp.misc_failures.putAssumeCapacityNoClobber(tag, .{ .msg = msg });
+ const gop = comp.misc_failures.getOrPutAssumeCapacity(tag);
+ if (gop.found_existing) {
+ gop.value_ptr.deinit(comp.gpa);
+ }
+ gop.value_ptr.* = .{ .msg = msg };
}
pub fn dump_argv(argv: []const []const u8) void {