X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Futil%2FLineReader.java;h=429c21807a4d010be48b6708a1c68174d1fe5991;hb=fffcafc33aa4066bdf85da7a32e1a1cdb9db2d6f;hp=630c4083f5056e3b2ed3a8b7266f53d33d329487;hpb=d5ec89bb7ea0f21117b1a5e120fd00c8fb9f19d5;p=org.ibex.core.git diff --git a/src/org/ibex/util/LineReader.java b/src/org/ibex/util/LineReader.java index 630c408..429c218 100644 --- a/src/org/ibex/util/LineReader.java +++ b/src/org/ibex/util/LineReader.java @@ -3,7 +3,7 @@ import java.io.*; public class LineReader { - private static int MAXBUF = 1024 * 16; + private int MAXBUF = 1024 * 16; char[] buf = new char[MAXBUF]; int buflen = 0; Reader r; @@ -22,10 +22,16 @@ public class LineReader { if (buf[i-1] == '\r') ret = new String(buf, 0, i-1); else ret = new String(buf, 0, i); System.arraycopy(buf, i+1, buf, 0, buflen - (i+1)); - buflen -= i; + buflen -= i+1; return ret; } } + if (buflen == MAXBUF) { + char[] buf2 = new char[MAXBUF*2]; + System.arraycopy(buf, 0, buf2, 0, buflen); + buf = buf2; + MAXBUF *= 2; + } int numread = r.read(buf, buflen, MAXBUF - buflen); if (numread == -1) { if (buflen == 0) return null;