Index: src/disassembler.cc |
=================================================================== |
--- src/disassembler.cc (revision 8885) |
+++ src/disassembler.cc (working copy) |
@@ -97,14 +97,17 @@ |
} |
-static void DumpBuffer(FILE* f, char* buff) { |
+static void DumpBuffer(FILE* f, StringBuilder* out) { |
if (f == NULL) { |
- PrintF("%s", buff); |
+ PrintF("%s\n", out->Finalize()); |
} else { |
- fprintf(f, "%s", buff); |
+ fprintf(f, "%s\n", out->Finalize()); |
} |
+ out->Reset(); |
} |
+ |
+ |
static const int kOutBufferSize = 2048 + String::kMaxShortPrintLength; |
static const int kRelocInfoPosition = 57; |
@@ -185,13 +188,10 @@ |
// Comments. |
for (int i = 0; i < comments.length(); i++) { |
- out.AddFormatted(" %s\n", comments[i]); |
+ out.AddFormatted(" %s", comments[i]); |
+ DumpBuffer(f, &out); |
} |
- // Write out comments, resets outp so that we can format the next line. |
- DumpBuffer(f, out.Finalize()); |
- out.Reset(); |
- |
// Instruction address and instruction offset. |
out.AddFormatted("%p %4d ", prev_pc, prev_pc - begin); |
@@ -209,7 +209,7 @@ |
out.AddPadding(' ', kRelocInfoPosition - out.position()); |
} else { |
// Additional reloc infos are printed on separate lines. |
- out.AddFormatted("\n"); |
+ DumpBuffer(f, &out); |
out.AddPadding(' ', kRelocInfoPosition); |
} |
@@ -299,9 +299,7 @@ |
out.AddFormatted(" ;; %s", RelocInfo::RelocModeName(rmode)); |
} |
} |
- out.AddString("\n"); |
- DumpBuffer(f, out.Finalize()); |
- out.Reset(); |
+ DumpBuffer(f, &out); |
} |
delete it; |