aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO/uuid.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/link/MachO/uuid.zig')
-rw-r--r--src/link/MachO/uuid.zig11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/link/MachO/uuid.zig b/src/link/MachO/uuid.zig
index 4c1b6a17ee..0770702dd7 100644
--- a/src/link/MachO/uuid.zig
+++ b/src/link/MachO/uuid.zig
@@ -14,20 +14,19 @@ const Hasher = @import("hasher.zig").ParallelHasher;
/// TODO LLD also hashes the output filename to disambiguate between same builds with different
/// output files. Should we also do that?
pub fn calcUuid(comp: *const Compilation, file: fs.File, file_size: u64, out: *[Md5.digest_length]u8) !void {
- const num_chunks = @intCast(u64, comp.thread_pool.threads.len) * 10;
+ const num_chunks = comp.thread_pool.threads.len * 0x10;
const chunk_size = @divTrunc(file_size + num_chunks - 1, num_chunks);
- const total_hashes = mem.alignForward(u64, file_size, chunk_size) / chunk_size;
- const hashes = try comp.gpa.alloc([Md5.digest_length]u8, total_hashes);
+ const hashes = try comp.gpa.alloc([Md5.digest_length]u8, num_chunks);
defer comp.gpa.free(hashes);
- var hasher = Hasher(Md5){};
- try hasher.hash(comp.gpa, comp.thread_pool, file, hashes, .{
+ var hasher = Hasher(Md5){ .allocator = comp.gpa, .thread_pool = comp.thread_pool };
+ try hasher.hash(file, hashes, .{
.chunk_size = chunk_size,
.max_file_size = file_size,
});
- const final_buffer = try comp.gpa.alloc(u8, total_hashes * Md5.digest_length);
+ const final_buffer = try comp.gpa.alloc(u8, num_chunks * Md5.digest_length);
defer comp.gpa.free(final_buffer);
for (hashes, 0..) |hash, i| {