|
|
|
@ -82,6 +82,7 @@ public class ByteBuffer extends OutputStream {
|
|
|
|
|
*/ |
|
|
|
|
public static boolean HIGH_PRECISION = false; |
|
|
|
|
private static final DecimalFormatSymbols dfs = new DecimalFormatSymbols(Locale.US); |
|
|
|
|
private static final int HALF_INTEGER = Integer.MAX_VALUE >> 1; |
|
|
|
|
|
|
|
|
|
/** Creates new ByteBuffer with capacity 128 */ |
|
|
|
|
public ByteBuffer() { |
|
|
|
@ -188,8 +189,11 @@ public class ByteBuffer extends OutputStream {
|
|
|
|
|
*/ |
|
|
|
|
public ByteBuffer append_i(int b) { |
|
|
|
|
int newcount = count + 1; |
|
|
|
|
if (newcount < 0) { |
|
|
|
|
throw new OutOfMemoryError(); |
|
|
|
|
} |
|
|
|
|
if (newcount > buf.length) { |
|
|
|
|
byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)]; |
|
|
|
|
byte newbuf[] = new byte[Math.max(Math.min(buf.length, HALF_INTEGER) << 1, newcount)]; |
|
|
|
|
System.arraycopy(buf, 0, newbuf, 0, count); |
|
|
|
|
buf = newbuf; |
|
|
|
|
} |
|
|
|
@ -211,8 +215,11 @@ public class ByteBuffer extends OutputStream {
|
|
|
|
|
((off + len) > b.length) || ((off + len) < 0) || len == 0) |
|
|
|
|
return this; |
|
|
|
|
int newcount = count + len; |
|
|
|
|
if (newcount < 0) { |
|
|
|
|
throw new OutOfMemoryError(); |
|
|
|
|
} |
|
|
|
|
if (newcount > buf.length) { |
|
|
|
|
byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)]; |
|
|
|
|
byte newbuf[] = new byte[Math.max(Math.min(buf.length, HALF_INTEGER) << 1, newcount)]; |
|
|
|
|
System.arraycopy(buf, 0, newbuf, 0, count); |
|
|
|
|
buf = newbuf; |
|
|
|
|
} |
|
|
|
|