Commit 0555fe8d5b

Andrew Kelley <andrew@ziglang.org>
2024-12-16 05:35:07
fix replaceVecSectionHeader
1 parent d6b42e5
Changed files (1)
src
link
src/link/Wasm/Flush.zig
@@ -1038,7 +1038,7 @@ fn replaceVecSectionHeader(
     section: std.wasm.Section,
     n_items: u32,
 ) void {
-    const size: u32 = @intCast(bytes.items.len - offset - section_header_size);
+    const size: u32 = @intCast(bytes.items.len - offset - section_header_reserve_size + uleb128size(n_items));
     var buf: [section_header_reserve_size]u8 = undefined;
     var fbw = std.io.fixedBufferStream(&buf);
     const w = fbw.writer();
@@ -1395,14 +1395,9 @@ fn emitSegmentInfo(wasm: *Wasm, binary_bytes: *std.ArrayList(u8)) !void {
 //    }
 //}
 
-fn getUleb128Size(uint_value: anytype) u32 {
-    const T = @TypeOf(uint_value);
-    const U = if (@typeInfo(T).int.bits < 8) u8 else T;
-    var value = @as(U, @intCast(uint_value));
-
+fn uleb128size(x: u32) u32 {
+    var value = x;
     var size: u32 = 0;
-    while (value != 0) : (size += 1) {
-        value >>= 7;
-    }
+    while (value != 0) : (size += 1) value >>= 7;
     return size;
 }