mirror of
https://github.com/revanced/smali.git
synced 2025-05-02 15:44:30 +02:00
Fix IndentingWriter.printUnsignedLongAsHex and printSignedIntAsDec
A previous change had introduced a regression where they were printing numbers backwards.
This commit is contained in:
parent
ec28400394
commit
d9c50f3f36
@ -34,7 +34,7 @@ import java.io.Writer;
|
|||||||
// TODO: add a write(String) method that doesn't scan for embedded newlines?
|
// TODO: add a write(String) method that doesn't scan for embedded newlines?
|
||||||
public class IndentingWriter extends Writer {
|
public class IndentingWriter extends Writer {
|
||||||
protected final Writer writer;
|
protected final Writer writer;
|
||||||
protected final char[] buffer = new char[16];
|
protected final char[] buffer = new char[24];
|
||||||
protected int indentLevel = 0;
|
protected int indentLevel = 0;
|
||||||
private boolean beginningOfLine = true;
|
private boolean beginningOfLine = true;
|
||||||
private static final String newLine = System.getProperty("line.separator");
|
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 {
|
public void printUnsignedLongAsHex(long value) throws IOException {
|
||||||
int bufferIndex = 0;
|
int bufferIndex = 23;
|
||||||
do {
|
do {
|
||||||
int digit = (int)(value & 15);
|
int digit = (int)(value & 15);
|
||||||
if (digit < 10) {
|
if (digit < 10) {
|
||||||
buffer[bufferIndex++] = (char)(digit + '0');
|
buffer[bufferIndex--] = (char)(digit + '0');
|
||||||
} else {
|
} else {
|
||||||
buffer[bufferIndex++] = (char)((digit - 10) + 'a');
|
buffer[bufferIndex--] = (char)((digit - 10) + 'a');
|
||||||
}
|
}
|
||||||
|
|
||||||
value >>>= 4;
|
value >>>= 4;
|
||||||
} while (value != 0);
|
} while (value != 0);
|
||||||
|
|
||||||
writeLine(buffer, 0, bufferIndex);
|
bufferIndex++;
|
||||||
|
|
||||||
|
writeLine(buffer, bufferIndex, 24-bufferIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printSignedIntAsDec(int value) throws IOException {
|
public void printSignedIntAsDec(int value) throws IOException {
|
||||||
int bufferIndex = 0;
|
int bufferIndex = 15;
|
||||||
|
|
||||||
if (value < 0) {
|
if (value < 0) {
|
||||||
value *= -1;
|
value *= -1;
|
||||||
@ -201,11 +203,13 @@ public class IndentingWriter extends Writer {
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
int digit = value % 10;
|
int digit = value % 10;
|
||||||
buffer[bufferIndex++] = (char)(digit + '0');
|
buffer[bufferIndex--] = (char)(digit + '0');
|
||||||
|
|
||||||
value = value / 10;
|
value = value / 10;
|
||||||
} while (value != 0);
|
} while (value != 0);
|
||||||
|
|
||||||
writeLine(buffer, 0, bufferIndex);
|
bufferIndex++;
|
||||||
|
|
||||||
|
writeLine(buffer, bufferIndex, 16-bufferIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user