From d9c50f3f36b1cc8c3d54426f9022fb638ae6cc8d Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Tue, 16 Apr 2013 00:26:24 -0700 Subject: Fix IndentingWriter.printUnsignedLongAsHex and printSignedIntAsDec A previous change had introduced a regression where they were printing numbers backwards. --- util/src/main/java/org/jf/util/IndentingWriter.java | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'util') diff --git a/util/src/main/java/org/jf/util/IndentingWriter.java b/util/src/main/java/org/jf/util/IndentingWriter.java index 40401405..ea4ebcfb 100644 --- a/util/src/main/java/org/jf/util/IndentingWriter.java +++ b/util/src/main/java/org/jf/util/IndentingWriter.java @@ -34,7 +34,7 @@ import java.io.Writer; // TODO: add a write(String) method that doesn't scan for embedded newlines? public class IndentingWriter extends Writer { protected final Writer writer; - protected final char[] buffer = new char[16]; + protected final char[] buffer = new char[24]; protected int indentLevel = 0; private boolean beginningOfLine = true; private static final String newLine = System.getProperty("line.separator"); @@ -176,23 +176,25 @@ public class IndentingWriter extends Writer { } public void printUnsignedLongAsHex(long value) throws IOException { - int bufferIndex = 0; + int bufferIndex = 23; do { int digit = (int)(value & 15); if (digit < 10) { - buffer[bufferIndex++] = (char)(digit + '0'); + buffer[bufferIndex--] = (char)(digit + '0'); } else { - buffer[bufferIndex++] = (char)((digit - 10) + 'a'); + buffer[bufferIndex--] = (char)((digit - 10) + 'a'); } value >>>= 4; } while (value != 0); - writeLine(buffer, 0, bufferIndex); + bufferIndex++; + + writeLine(buffer, bufferIndex, 24-bufferIndex); } public void printSignedIntAsDec(int value) throws IOException { - int bufferIndex = 0; + int bufferIndex = 15; if (value < 0) { value *= -1; @@ -201,11 +203,13 @@ public class IndentingWriter extends Writer { do { int digit = value % 10; - buffer[bufferIndex++] = (char)(digit + '0'); + buffer[bufferIndex--] = (char)(digit + '0'); value = value / 10; } while (value != 0); - writeLine(buffer, 0, bufferIndex); + bufferIndex++; + + writeLine(buffer, bufferIndex, 16-bufferIndex); } } -- cgit v1.2.3