Changes for better memory managment

This commit is contained in:
jent 2009-12-01 09:54:36 -07:00
parent f6a52e260b
commit f39469e71c

View File

@ -185,7 +185,7 @@ public final class String
}
private static Object decodeUTF8(byte[] s8, int offset, int length) {
Object buf = new byte[s8.length];
Object buf = new byte[length];
boolean isMultiByte = false;
int i=offset, j=0;
while(i < offset+length) {
@ -195,14 +195,14 @@ public final class String
decodeUTF8_insert(buf, j++, x);
} else if((x & 0x0e0) == 0x0c0) { // 2 byte char
if(!isMultiByte) {
buf = decodeUTF8_widen(buf, j, s8.length-1);
buf = decodeUTF8_widen(buf, j, length-1);
isMultiByte = true;
}
int y = s8[i++];
decodeUTF8_insert(buf, j++, ((x & 0x1f) << 6) | (y & 0x3f));
} else if((x & 0x0f0) == 0x0e0) { // 3 byte char
if(!isMultiByte) {
buf = decodeUTF8_widen(buf, j, s8.length-2);
buf = decodeUTF8_widen(buf, j, length-2);
isMultiByte = true;
}
int y = s8[i++]; int z = s8[i++];