diff --git a/git.zig b/git.zig index 9df36d3f95cfd18e14c1ca65f958f88f1aa7a0ac..d428119ffb37aab13f1003df0b80e467dd1a512e 100644 --- a/git.zig +++ b/git.zig @@ -744,6 +744,7 @@ pub const Repository = struct { r.idx_content.deinit(r.gpa); for (r.pack_content.values()) |v| nfs.munmap(v); r.pack_content.deinit(r.gpa); + for (r.commits.values()) |v| r.gpa.free(v.parents); r.commits.deinit(r.gpa); for (r.trees.values()) |*v| r.gpa.free(v.children); r.trees.deinit(r.gpa); @@ -1065,7 +1066,7 @@ pub const Repository = struct { } if (try r.getObject(arena, id.id, .cache)) |obj| { if (obj.type == .commit) { - const commit = try parseCommit(arena, obj.content); + const commit = try parseCommit(r.gpa, obj.content); try r.commits.put(r.gpa, id.id, commit); const idx = r.commits.values().len - 1; return .{ id, @enumFromInt(idx) };