| ... | @@ -1352,7 +1352,7 @@ const MachODumper = struct { | ... | @@ -1352,7 +1352,7 @@ const MachODumper = struct { |
| 1352 | var offset: u64 = 0; | 1352 | var offset: u64 = 0; |
| 1353 | var addend: i64 = 0; | 1353 | var addend: i64 = 0; |
| 1354 | | 1354 | |
| 1355 | var name_buf: std.ArrayList(u8) = .init(ctx.gpa); | 1355 | var name_buf: std.io.Writer.Allocating = .init(ctx.gpa); |
| 1356 | defer name_buf.deinit(); | 1356 | defer name_buf.deinit(); |
| 1357 | | 1357 | |
| 1358 | while (br.takeByte()) |byte| { | 1358 | while (br.takeByte()) |byte| { |
| ... | @@ -1380,9 +1380,8 @@ const MachODumper = struct { | ... | @@ -1380,9 +1380,8 @@ const MachODumper = struct { |
| 1380 | }, | 1380 | }, |
| 1381 | macho.BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM => { | 1381 | macho.BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM => { |
| 1382 | name_buf.clearRetainingCapacity(); | 1382 | name_buf.clearRetainingCapacity(); |
| 1383 | if (true) @panic("TODO fix this"); | 1383 | try br.streamDelimiterLimit(&name_buf, 0, .limited(std.math.maxInt(u32))); |
| 1384 | //try reader.readUntilDelimiterArrayList(&name_buf, 0, std.math.maxInt(u32)); | 1384 | try name_buf.writeByte(0); |
| 1385 | try name_buf.append(0); | | |
| 1386 | }, | 1385 | }, |
| 1387 | macho.BIND_OPCODE_SET_ADDEND_SLEB => { | 1386 | macho.BIND_OPCODE_SET_ADDEND_SLEB => { |
| 1388 | addend = try br.takeLeb128(i64); | 1387 | addend = try br.takeLeb128(i64); |
| ... | @@ -1424,7 +1423,7 @@ const MachODumper = struct { | ... | @@ -1424,7 +1423,7 @@ const MachODumper = struct { |
| 1424 | .addend = addend, | 1423 | .addend = addend, |
| 1425 | .tag = tag, | 1424 | .tag = tag, |
| 1426 | .ordinal = ordinal, | 1425 | .ordinal = ordinal, |
| 1427 | .name = try ctx.gpa.dupe(u8, name_buf.items), | 1426 | .name = try ctx.gpa.dupe(u8, name_buf.getWritten()), |
| 1428 | }); | 1427 | }); |
| 1429 | offset += skip + @sizeOf(u64) + add_addr; | 1428 | offset += skip + @sizeOf(u64) + add_addr; |
| 1430 | } | 1429 | } |