| ... | ... | @@ -862,7 +862,8 @@ pub fn commitDeclState( |
| 862 | 862 | .wasm => { |
| 863 | 863 | const wasm_file = file.cast(File.Wasm).?; |
| 864 | 864 | const segment_index = wasm_file.debug_line_index.?; |
| 865 | | const debug_line = wasm_file.atoms.get(segment_index).?.code; |
| 865 | const atom = wasm_file.atoms.get(segment_index).?; |
| 866 | const debug_line = atom.getFirstZigAtom().code; |
| 866 | 867 | writeDbgLineNopsBuffered(debug_line.items, src_fn.off, 0, &.{}, src_fn.len); |
| 867 | 868 | }, |
| 868 | 869 | else => unreachable, |
| ... | ... | @@ -974,9 +975,10 @@ pub fn commitDeclState( |
| 974 | 975 | }, |
| 975 | 976 | .wasm => { |
| 976 | 977 | const wasm_file = file.cast(File.Wasm).?; |
| 977 | | const segment_index = try wasm_file.getOrSetDebugIndex(&wasm_file.debug_line_index); |
| 978 | const segment_index = wasm_file.debug_line_index.?; |
| 978 | 979 | const segment = &wasm_file.segments.items[segment_index]; |
| 979 | | const debug_line = &wasm_file.atoms.get(segment_index).?.code; |
| 980 | const atom = wasm_file.atoms.get(segment_index).?; |
| 981 | const debug_line = &atom.getFirstZigAtom().code; |
| 980 | 982 | if (needed_size != segment.size) { |
| 981 | 983 | log.debug(" needed size does not equal allocated size: {d}", .{needed_size}); |
| 982 | 984 | if (needed_size > segment.size) { |
| ... | ... | @@ -1148,9 +1150,10 @@ fn updateDeclDebugInfoAllocation(self: *Dwarf, file: *File, atom: *Atom, len: u3 |
| 1148 | 1150 | }, |
| 1149 | 1151 | .wasm => { |
| 1150 | 1152 | const wasm_file = file.cast(File.Wasm).?; |
| 1151 | | const segment_index = try wasm_file.getOrSetDebugIndex(&wasm_file.debug_info_index); |
| 1153 | const segment_index = wasm_file.debug_info_index.?; |
| 1152 | 1154 | const segment = &wasm_file.segments.items[segment_index]; |
| 1153 | | const debug_info = &wasm_file.atoms.get(segment_index).?.code; |
| 1155 | const info_atom = wasm_file.atoms.get(segment_index).?; |
| 1156 | const debug_info = &info_atom.getFirstZigAtom().code; |
| 1154 | 1157 | const offset = segment.offset + atom.off; |
| 1155 | 1158 | try writeDbgInfoNopsToArrayList(gpa, debug_info, offset, 0, &.{0}, atom.len, false); |
| 1156 | 1159 | }, |
| ... | ... | @@ -1279,9 +1282,10 @@ fn writeDeclDebugInfo(self: *Dwarf, file: *File, atom: *Atom, dbg_info_buf: []co |
| 1279 | 1282 | }, |
| 1280 | 1283 | .wasm => { |
| 1281 | 1284 | const wasm_file = file.cast(File.Wasm).?; |
| 1282 | | const segment_index = try wasm_file.getOrSetDebugIndex(&wasm_file.debug_info_index); |
| 1285 | const segment_index = wasm_file.debug_info_index.?; |
| 1283 | 1286 | const segment = &wasm_file.segments.items[segment_index]; |
| 1284 | | const debug_info = &wasm_file.atoms.get(segment_index).?.code; |
| 1287 | const info_atom = wasm_file.atoms.get(segment_index).?; |
| 1288 | const debug_info = &info_atom.getFirstZigAtom().code; |
| 1285 | 1289 | if (needed_size != segment.size) { |
| 1286 | 1290 | log.debug(" needed size does not equal allocated size: {d}", .{needed_size}); |
| 1287 | 1291 | if (needed_size > segment.size) { |
| ... | ... | @@ -1343,7 +1347,8 @@ pub fn updateDeclLineNumber(self: *Dwarf, file: *File, decl: *const Module.Decl) |
| 1343 | 1347 | const segment_index = wasm_file.debug_line_index.?; |
| 1344 | 1348 | const segment = wasm_file.segments.items[segment_index]; |
| 1345 | 1349 | const offset = segment.offset + decl.fn_link.wasm.src_fn.off + self.getRelocDbgLineOff(); |
| 1346 | | mem.copy(u8, wasm_file.atoms.get(segment_index).?.code.items[offset..], &data); |
| 1350 | const atom = wasm_file.atoms.get(segment_index).?.getFirstZigAtom(); |
| 1351 | mem.copy(u8, atom.code.items[offset..], &data); |
| 1347 | 1352 | }, |
| 1348 | 1353 | else => unreachable, |
| 1349 | 1354 | } |
| ... | ... | @@ -1579,8 +1584,8 @@ pub fn writeDbgAbbrev(self: *Dwarf, file: *File) !void { |
| 1579 | 1584 | }, |
| 1580 | 1585 | .wasm => { |
| 1581 | 1586 | const wasm_file = file.cast(File.Wasm).?; |
| 1582 | | const segment_index = try wasm_file.getOrSetDebugIndex(&wasm_file.debug_abbrev_index); |
| 1583 | | const debug_abbrev = &wasm_file.atoms.get(segment_index).?.code; |
| 1587 | const segment_index = wasm_file.debug_abbrev_index.?; |
| 1588 | const debug_abbrev = &wasm_file.atoms.get(segment_index).?.getFirstZigAtom().code; |
| 1584 | 1589 | try debug_abbrev.resize(wasm_file.base.allocator, needed_size); |
| 1585 | 1590 | mem.copy(u8, debug_abbrev.items, &abbrev_buf); |
| 1586 | 1591 | }, |
| ... | ... | @@ -1693,7 +1698,7 @@ pub fn writeDbgInfoHeader(self: *Dwarf, file: *File, module: *Module, low_pc: u6 |
| 1693 | 1698 | .wasm => { |
| 1694 | 1699 | const wasm_file = file.cast(File.Wasm).?; |
| 1695 | 1700 | const segment_index = wasm_file.debug_info_index.?; |
| 1696 | | const debug_info = &wasm_file.atoms.get(segment_index).?.code; |
| 1701 | const debug_info = &wasm_file.atoms.get(segment_index).?.getFirstZigAtom().code; |
| 1697 | 1702 | try writeDbgInfoNopsToArrayList(self.allocator, debug_info, 0, 0, di_buf.items, jmp_amt, false); |
| 1698 | 1703 | }, |
| 1699 | 1704 | else => unreachable, |
| ... | ... | @@ -2023,8 +2028,8 @@ pub fn writeDbgAranges(self: *Dwarf, file: *File, addr: u64, size: u64) !void { |
| 2023 | 2028 | }, |
| 2024 | 2029 | .wasm => { |
| 2025 | 2030 | const wasm_file = file.cast(File.Wasm).?; |
| 2026 | | const segment_index = try wasm_file.getOrSetDebugIndex(&wasm_file.debug_ranges_index); |
| 2027 | | const debug_ranges = &wasm_file.atoms.get(segment_index).?.code; |
| 2031 | const segment_index = wasm_file.debug_ranges_index.?; |
| 2032 | const debug_ranges = &wasm_file.atoms.get(segment_index).?.getFirstZigAtom().code; |
| 2028 | 2033 | try debug_ranges.resize(wasm_file.base.allocator, needed_size); |
| 2029 | 2034 | mem.copy(u8, debug_ranges.items, di_buf.items); |
| 2030 | 2035 | }, |
| ... | ... | @@ -2149,7 +2154,7 @@ pub fn writeDbgLineHeader(self: *Dwarf, file: *File, module: *Module) !void { |
| 2149 | 2154 | .wasm => { |
| 2150 | 2155 | const wasm_file = file.cast(File.Wasm).?; |
| 2151 | 2156 | const segment_index = wasm_file.debug_line_index.?; |
| 2152 | | const debug_line = wasm_file.atoms.get(segment_index).?.code; |
| 2157 | const debug_line = wasm_file.atoms.get(segment_index).?.getFirstZigAtom().code; |
| 2153 | 2158 | writeDbgLineNopsBuffered(debug_line.items, 0, 0, di_buf.items, jmp_amt); |
| 2154 | 2159 | }, |
| 2155 | 2160 | else => unreachable, |
| ... | ... | @@ -2299,7 +2304,7 @@ pub fn flushModule(self: *Dwarf, file: *File, module: *Module) !void { |
| 2299 | 2304 | .wasm => { |
| 2300 | 2305 | const wasm_file = file.cast(File.Wasm).?; |
| 2301 | 2306 | const segment_index = wasm_file.debug_info_index.?; |
| 2302 | | const debug_info = wasm_file.atoms.get(segment_index).?.code; |
| 2307 | const debug_info = wasm_file.atoms.get(segment_index).?.getFirstZigAtom().code; |
| 2303 | 2308 | mem.copy(u8, debug_info.items[reloc.atom.off + reloc.offset ..], &buf); |
| 2304 | 2309 | }, |
| 2305 | 2310 | else => unreachable, |