Copying to char array is expensive operation avoid it closure
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 07 May 2014 11:39:31 +0200
branchclosure
changeset 15460d62e32b04b2
parent 1545 50991eae72d4
child 1547 7c10f6d5635c
Copying to char array is expensive operation avoid it
rt/emul/mini/src/main/java/java/lang/String.java
     1.1 --- a/rt/emul/mini/src/main/java/java/lang/String.java	Wed May 07 11:05:07 2014 +0200
     1.2 +++ b/rt/emul/mini/src/main/java/java/lang/String.java	Wed May 07 11:39:31 2014 +0200
     1.3 @@ -1185,8 +1185,6 @@
     1.4          int len1 = length();
     1.5          int len2 = anotherString.length();
     1.6          int n = Math.min(len1, len2);
     1.7 -        char v1[] = toCharArray();
     1.8 -        char v2[] = anotherString.toCharArray();
     1.9          int i = offset();
    1.10          int j = anotherString.offset();
    1.11  
    1.12 @@ -1194,8 +1192,8 @@
    1.13              int k = i;
    1.14              int lim = n + i;
    1.15              while (k < lim) {
    1.16 -                char c1 = v1[k];
    1.17 -                char c2 = v2[k];
    1.18 +                char c1 = this.charAt(k);
    1.19 +                char c2 = anotherString.charAt(k);
    1.20                  if (c1 != c2) {
    1.21                      return c1 - c2;
    1.22                  }
    1.23 @@ -1203,8 +1201,8 @@
    1.24              }
    1.25          } else {
    1.26              while (n-- != 0) {
    1.27 -                char c1 = v1[i++];
    1.28 -                char c2 = v2[j++];
    1.29 +                char c1 = this.charAt(i++);
    1.30 +                char c2 = anotherString.charAt(j++);
    1.31                  if (c1 != c2) {
    1.32                      return c1 - c2;
    1.33                  }