fix wonky line table indent

This commit is contained in:
Nikita Smith
2026-02-19 18:11:12 -08:00
parent e7cf2513b7
commit a9d3757dbc
+34 -9
View File
@@ -946,10 +946,14 @@ DW_PRINTER(dw_print_line)
DW_LineVM *vm = dw_line_vm_init(input, &cu_arr[unit_idx]); DW_LineVM *vm = dw_line_vm_init(input, &cu_arr[unit_idx]);
// rjf: begin logging line table // rjf: begin logging line table
dw_printf("line_table: // line_table[%I64u]\n{\n", unit_idx); dw_printf("line_table: // line_table[%I64u]\n", unit_idx);
dw_printf("{\n");
dw_indent();
{
// rjf: log line table header // rjf: log line table header
DeferLoop(dw_printf(" header:\n {\n"), dw_printf(" }\n\n")) dw_printf("header:\n");
dw_printf("{\n");
dw_indent();
{ {
String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(vm->header.opcode_lens, vm->header.num_opcode_lens), 1); String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(vm->header.opcode_lens, vm->header.num_opcode_lens), 1);
String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")}); String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")});
@@ -964,23 +968,33 @@ DW_PRINTER(dw_print_line)
dw_printf("line_base: %d\n", vm->header.line_base ); dw_printf("line_base: %d\n", vm->header.line_base );
dw_printf("line_range: %u\n", vm->header.line_range ); dw_printf("line_range: %u\n", vm->header.line_range );
dw_printf("opcode_base: %u\n", vm->header.opcode_base ); dw_printf("opcode_base: %u\n", vm->header.opcode_base );
dw_printf(" opcode_lengths: %S\n", opcode_lengths_string ); dw_printf("opcode_lengths: { %S }\n", opcode_lengths_string );
} }
dw_unindent();
dw_printf("}\n");
// rjf: log directory table // rjf: log directory table
DeferLoop(dw_printf(" directory_table:\n {\n"), dw_printf(" }\n\n")) dw_printf("directory_table:\n");
dw_printf("{\n");
dw_indent();
{ {
dw_printf(" // %-4s %-8s\n", "no.", "name"); dw_printf("// %-4s %-30s\n", "no.", "name");
dw_printf("// ---- ------------------------------\n");
for EachIndex(dir_idx, vm->header.dir_table.count) for EachIndex(dir_idx, vm->header.dir_table.count)
{ {
dw_printf("{ %-4I64u %S }\n", dir_idx, vm->header.dir_table.v[dir_idx]); dw_printf("{ %-4I64u %S }\n", dir_idx, vm->header.dir_table.v[dir_idx]);
} }
} }
dw_unindent();
dw_printf("}\n\n");
// rjf: log file table // rjf: log file table
DeferLoop(dw_printf(" file_table:\n {\n"), dw_printf(" }\n\n")) dw_printf("file_table:\n");
dw_printf("{\n");
dw_indent();
{ {
dw_printf(" // %-4s %-8s %-8s %-33s %-8s %-8s\n", "no.", "dir_idx", "time", "md5", "size", "name"); dw_printf("// %-4s %-8s %-8s %-33s %-8s %-20s\n", "no.", "dir_idx", "time", "md5", "size", "name");
dw_printf("// ---- -------- -------- --------------------------------- -------- --------------------\n");
for EachIndex(file_idx, vm->header.file_table.count) for EachIndex(file_idx, vm->header.file_table.count)
{ {
DW_LineFile *file = &vm->header.file_table.v[file_idx]; DW_LineFile *file = &vm->header.file_table.v[file_idx];
@@ -994,9 +1008,13 @@ DW_PRINTER(dw_print_line)
file->file_name); file->file_name);
} }
} }
dw_unindent();
dw_printf("}\n");
// rjf: log opcodes // rjf: log opcodes
DeferLoop(dw_printf(" line_table:\n {\n"), dw_printf(" }\n\n")) dw_printf("line_table:\n");
dw_printf("{\n");
dw_indent();
{ {
dw_printf("//\n"); dw_printf("//\n");
dw_printf("// %-16s %-8s %-4s %-5s %-3s %-7s %-16s\n", "Address", "Line", "Col", "File", "ISA", "Discrim", "Flags"); dw_printf("// %-16s %-8s %-4s %-5s %-3s %-7s %-16s\n", "Address", "Line", "Col", "File", "ISA", "Discrim", "Flags");
@@ -1122,8 +1140,14 @@ DW_PRINTER(dw_print_line)
dw_printf("ERROR: Line VM failed stepping @ 0x%I64x\n", vm->cursor); dw_printf("ERROR: Line VM failed stepping @ 0x%I64x\n", vm->cursor);
} }
} }
dw_unindent();
dw_printf("}\n");
temp_end(unit_temp); temp_end(unit_temp);
} }
dw_unindent();
dw_printf("}\n");
}
scratch_end(scratch); scratch_end(scratch);
} }
@@ -2141,6 +2165,7 @@ read_only struct {
{ dw_print_info, DW_Section_Info }, { dw_print_info, DW_Section_Info },
{ dw_print_strings, DW_Section_Str }, { dw_print_strings, DW_Section_Str },
{ dw_print_frame, DW_Section_Frame }, { dw_print_frame, DW_Section_Frame },
{ dw_print_line, DW_Section_Line },
}; };
internal String8List internal String8List