1.1 --- a/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreeindex/StringInfo.java Tue Mar 28 14:54:43 2006 +0000
1.2 +++ b/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreeindex/StringInfo.java Tue Apr 04 12:33:07 2006 +0000
1.3 @@ -71,22 +71,24 @@
1.4 int length = buffer.length;
1.5 int offset = 0;
1.6 StringBuffer sb = new StringBuffer(length);
1.7 - do {
1.8 - int b = buffer[offset++] & 0xff;
1.9 - length--;
1.10 - if (b >= 0xe0) {
1.11 - b = (b & 0x0f) << 12;
1.12 - b |= (buffer[offset++] & 0x3f) << 6;
1.13 - b |= buffer[offset++] & 0x3f;
1.14 + if (length > 0) {
1.15 + do {
1.16 + int b = buffer[offset++] & 0xff;
1.17 length--;
1.18 - length--;
1.19 - } else if (b >= 0xc0) {
1.20 - b = (b & 0x1f) << 6;
1.21 - b |= buffer[offset++] & 0x3f;
1.22 - length--;
1.23 - }
1.24 - sb.append((char)b);
1.25 - } while (length > 0);
1.26 + if (b >= 0xe0) {
1.27 + b = (b & 0x0f) << 12;
1.28 + b |= (buffer[offset++] & 0x3f) << 6;
1.29 + b |= buffer[offset++] & 0x3f;
1.30 + length--;
1.31 + length--;
1.32 + } else if (b >= 0xc0) {
1.33 + b = (b & 0x1f) << 6;
1.34 + b |= buffer[offset++] & 0x3f;
1.35 + length--;
1.36 + }
1.37 + sb.append((char)b);
1.38 + } while (length > 0);
1.39 + }
1.40 return new String(sb);
1.41 }
1.42