wasm linker: implement data fixups

one hash table lookup per fixup
This commit is contained in:
Andrew Kelley
2024-12-18 22:11:20 -08:00
parent 5fac6f380e
commit 4f8a6b0888
3 changed files with 53 additions and 7 deletions

View File

@@ -674,8 +674,9 @@ fn lowerUavRef(
.addend = @intCast(offset),
});
} else {
try wasm.uav_fixups.append(gpa, .{
.ip_index = uav.val,
try wasm.uav_fixups.ensureUnusedCapacity(gpa, 1);
wasm.uav_fixups.appendAssumeCapacity(.{
.uavs_exe_index = try wasm.refUavExe(pt, uav.val),
.offset = @intCast(code.items.len),
});
}
@@ -745,8 +746,9 @@ fn lowerNavRef(
.addend = @intCast(offset),
});
} else {
try wasm.nav_fixups.append(gpa, .{
.nav_index = nav_index,
try wasm.nav_fixups.ensureUnusedCapacity(gpa, 1);
wasm.nav_fixups.appendAssumeCapacity(.{
.navs_exe_index = try wasm.refNavExe(nav_index),
.offset = @intCast(code.items.len),
});
}