String(byte[],hibyte) gives proper length emul
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 05 Feb 2013 12:21:15 +0100
branchemul
changeset 6703026d9c844f0
parent 667 5866e89ef568
child 671 99fa4fe6b980
String(byte[],hibyte) gives proper length
emul/mini/src/main/java/java/lang/String.java
vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java
     1.1 --- a/emul/mini/src/main/java/java/lang/String.java	Tue Feb 05 08:48:23 2013 +0100
     1.2 +++ b/emul/mini/src/main/java/java/lang/String.java	Tue Feb 05 12:21:15 2013 +0100
     1.3 @@ -335,7 +335,7 @@
     1.4                  value[i] = (char) (hibyte | (ascii[i + offset] & 0xff));
     1.5              }
     1.6          }
     1.7 -        this.r = new String(value, 0, count);
     1.8 +        initFromCharArray(value, offset, count);
     1.9      }
    1.10  
    1.11      /**
     2.1 --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java	Tue Feb 05 08:48:23 2013 +0100
     2.2 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java	Tue Feb 05 12:21:15 2013 +0100
     2.3 @@ -47,6 +47,19 @@
     2.4          return "Ahoj".equals(null);
     2.5      }
     2.6      
     2.7 +    @Compare public int highByteLenght() {
     2.8 +        byte[] arr= { 77,97,110,105,102,101,115,116,45,86,101,114,115,105,111,110 };
     2.9 +        return new String(arr, 0).length();
    2.10 +    }
    2.11 +    
    2.12 +    @Compare public String highByte() {
    2.13 +        byte[] arr= { 77,97,110,105,102,101,115,116,45,86,101,114,115,105,111,110 };
    2.14 +        StringBuilder sb = new StringBuilder();
    2.15 +        sb.append("pref:");
    2.16 +        sb.append(new String(arr, 0));
    2.17 +        return sb.toString();
    2.18 +    }
    2.19 +    
    2.20      @Compare public static Object compareURLs() throws MalformedURLException {
    2.21          return new URL("http://apidesign.org:8080/wiki/").toExternalForm().toString();
    2.22      }