authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-09 21:56:49-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-15 15:11:36-08:00
logd999a8e33b75a6ddd477cc71d8f682fe703496eb
treeada7c347c20d6b76ac5620e6726e9fa78fa059ba
parent788b7f8f115e8510176ca7fbfdc04fb48d69ecb1

wasm-linker: fix splitSegmentName and add unit test


1 files changed, 9 insertions(+), 1 deletions(-)

src/link/Wasm/Flush.zig+9-1
...@@ -1182,10 +1182,18 @@ fn emitProducerSection(gpa: Allocator, binary_bytes: *std.ArrayListUnmanaged(u8)...@@ -1182,10 +1182,18 @@ fn emitProducerSection(gpa: Allocator, binary_bytes: *std.ArrayListUnmanaged(u8)
11821182
1183fn splitSegmentName(name: []const u8) struct { []const u8, []const u8 } {1183fn splitSegmentName(name: []const u8) struct { []const u8, []const u8 } {
1184 const start = @intFromBool(name.len >= 1 and name[0] == '.');1184 const start = @intFromBool(name.len >= 1 and name[0] == '.');
1185 const pivot = mem.indexOfScalarPos(u8, name, start, '.') orelse 0;1185 const pivot = mem.indexOfScalarPos(u8, name, start, '.') orelse name.len;
1186 return .{ name[0..pivot], name[pivot..] };1186 return .{ name[0..pivot], name[pivot..] };
1187}1187}
11881188
1189test splitSegmentName {
1190 {
1191 const a, const b = splitSegmentName(".data");
1192 try std.testing.expectEqualStrings(".data", a);
1193 try std.testing.expectEqualStrings("", b);
1194 }
1195}
1196
1189fn wantSegmentMerge(1197fn wantSegmentMerge(
1190 wasm: *const Wasm,1198 wasm: *const Wasm,
1191 a_id: Wasm.DataSegmentId,1199 a_id: Wasm.DataSegmentId,