diff options
| author | Luuk de Gram <luuk@degram.dev> | 2022-09-12 21:35:28 +0200 |
|---|---|---|
| committer | Luuk de Gram <luuk@degram.dev> | 2022-09-12 21:35:28 +0200 |
| commit | 3edf8c7a6cb912597bbc97ad97d554e6e4d96cdb (patch) | |
| tree | 2039b9fb77c4f3ce9964a6622e51cf01e5fc874a | |
| parent | 61f317e3862101a22411ac1f6005ef4ef5b8ab56 (diff) | |
| download | zig-3edf8c7a6cb912597bbc97ad97d554e6e4d96cdb.tar.gz zig-3edf8c7a6cb912597bbc97ad97d554e6e4d96cdb.zip | |
wasm-linker: reset file pointer for incremental
On each invocation of `flush()` the file pointer is moved.
This means that rather than overwriting the binary file,
we're appending to the file. With this commit, we're resetting
said pointer to '0' and overwrite the existing binary in incremental
mode.
| -rw-r--r-- | src/link/Wasm.zig | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig index 14d864c330..6dd3bc56ff 100644 --- a/src/link/Wasm.zig +++ b/src/link/Wasm.zig @@ -2218,6 +2218,9 @@ pub fn flushModule(wasm: *Wasm, comp: *Compilation, prog_node: *std.Progress.Nod // We write the magic bytes at the end so they will only be written // if everything succeeded as expected. So populate with 0's for now. try binary_writer.writeAll(&[_]u8{0} ** 8); + // (Re)set file pointer to 0 + try wasm.base.file.?.setEndPos(0); + try wasm.base.file.?.seekTo(0); // Type section if (wasm.func_types.items.len != 0) { |
