aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authortgschultz <tgschultz@gmail.com>2020-11-16 17:51:54 -0600
committerGitHub <noreply@github.com>2020-11-16 18:51:54 -0500
commit48d60834fd61404ea009f7f970775f9c59de1240 (patch)
treebea3b1427db82fc781e216933fe44dc5b20fdb3f /src/link
parentd9c36cb2506f1b8cb30c7e9e108c6005eea7cf66 (diff)
downloadzig-48d60834fd61404ea009f7f970775f9c59de1240.tar.gz
zig-48d60834fd61404ea009f7f970775f9c59de1240.zip
Move leb128 and remove trivial *mem functions as discussed in #5588 (#6876)
* Move leb128 out of debug and remove trivial *mem functions as discussed in #5588 * Turns out one of the *Mem functions was used by MachO. Replaced with trivial use of FixedBufferStream.
Diffstat (limited to 'src/link')
-rw-r--r--src/link/Elf.zig2
-rw-r--r--src/link/MachO/Trie.zig19
-rw-r--r--src/link/Wasm.zig2
3 files changed, 13 insertions, 10 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 7d4662c68d..94a946c3c7 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -8,7 +8,7 @@ const fs = std.fs;
const elf = std.elf;
const log = std.log.scoped(.link);
const DW = std.dwarf;
-const leb128 = std.debug.leb;
+const leb128 = std.leb;
const ir = @import("../ir.zig");
const Module = @import("../Module.zig");
diff --git a/src/link/MachO/Trie.zig b/src/link/MachO/Trie.zig
index e077df101d..34ce4e99b9 100644
--- a/src/link/MachO/Trie.zig
+++ b/src/link/MachO/Trie.zig
@@ -32,7 +32,7 @@ const Trie = @This();
const std = @import("std");
const mem = std.mem;
-const leb = std.debug.leb;
+const leb = std.leb;
const log = std.log.scoped(.link);
const testing = std.testing;
const assert = std.debug.assert;
@@ -139,16 +139,18 @@ const Node = struct {
// Terminal node info: encode export flags and vmaddr offset of this symbol.
var info_buf_len: usize = 0;
var info_buf: [@sizeOf(u64) * 2]u8 = undefined;
- info_buf_len += try leb.writeULEB128Mem(info_buf[0..], self.export_flags.?);
- info_buf_len += try leb.writeULEB128Mem(info_buf[info_buf_len..], offset);
+ var info_stream = std.io.fixedBufferStream(&info_buf);
+ try leb.writeULEB128(info_stream.writer(), self.export_flags.?);
+ try leb.writeULEB128(info_stream.writer(), offset);
// Encode the size of the terminal node info.
var size_buf: [@sizeOf(u64)]u8 = undefined;
- const size_buf_len = try leb.writeULEB128Mem(size_buf[0..], info_buf_len);
+ var size_stream = std.io.fixedBufferStream(&size_buf);
+ try leb.writeULEB128(size_stream.writer(), info_stream.pos);
// Now, write them to the output buffer.
- buffer.appendSliceAssumeCapacity(size_buf[0..size_buf_len]);
- buffer.appendSliceAssumeCapacity(info_buf[0..info_buf_len]);
+ buffer.appendSliceAssumeCapacity(size_buf[0..size_stream.pos]);
+ buffer.appendSliceAssumeCapacity(info_buf[0..info_stream.pos]);
} else {
// Non-terminal node is delimited by 0 byte.
buffer.appendAssumeCapacity(0);
@@ -162,8 +164,9 @@ const Node = struct {
buffer.appendAssumeCapacity(0);
var buf: [@sizeOf(u64)]u8 = undefined;
- const buf_len = try leb.writeULEB128Mem(buf[0..], edge.to.trie_offset.?);
- buffer.appendSliceAssumeCapacity(buf[0..buf_len]);
+ var buf_stream = std.io.fixedBufferStream(&buf);
+ try leb.writeULEB128(buf_stream.writer(), edge.to.trie_offset.?);
+ buffer.appendSliceAssumeCapacity(buf[0..buf_stream.pos]);
}
}
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index 2ab757461c..bf6b34ed76 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -5,7 +5,7 @@ const mem = std.mem;
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const fs = std.fs;
-const leb = std.debug.leb;
+const leb = std.leb;
const log = std.log.scoped(.link);
const Module = @import("../Module.zig");