| 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; | 
|  |