summaryrefslogtreecommitdiffstats
path: root/luni
diff options
context:
space:
mode:
authorPhilip Milne <pmilne@google.com>2011-06-29 11:37:54 -0700
committerPhilip Milne <pmilne@google.com>2011-08-05 09:15:36 -0700
commit892c36b1c1eee25ad46bac6fffdf129219a5e98d (patch)
treec5ac8af600b5cf310256b3392cac81c66ca03bab /luni
parent703fba55df1af9ddc6d7cae41b517cf114f32f73 (diff)
downloadlibcore-892c36b1c1eee25ad46bac6fffdf129219a5e98d.zip
libcore-892c36b1c1eee25ad46bac6fffdf129219a5e98d.tar.gz
libcore-892c36b1c1eee25ad46bac6fffdf129219a5e98d.tar.bz2
Remove the contentEquals() method that was added to java.lang.String.
The public (though hidden) method contentEquals(char[], int, int) was added to java.lang.String to avoid creating large numbers of Strings during XML parsing. That objective is preserved with this change, which uses a private static method with a similar implementation that goes through the regular String API. Change-Id: I808e1ebc4ef6812dd651682628167b4c078af334
Diffstat (limited to 'luni')
-rw-r--r--luni/src/main/java/java/lang/String.java17
-rw-r--r--luni/src/main/java/libcore/internal/StringPool.java14
2 files changed, 13 insertions, 18 deletions
diff --git a/luni/src/main/java/java/lang/String.java b/luni/src/main/java/java/lang/String.java
index 5991f7a..efd4210 100644
--- a/luni/src/main/java/java/lang/String.java
+++ b/luni/src/main/java/java/lang/String.java
@@ -1719,23 +1719,6 @@ outer:
}
/**
- * Equivalent to {@code equals(new String(chars, offset, length))}.
- *
- * @hide
- */
- public boolean contentEquals(char[] chars, int offset, int length) {
- if (count != length) {
- return false;
- }
- for (int i = 0; i < length; i++) {
- if (chars[offset + i] != value[this.offset + i]) {
- return false;
- }
- }
- return true;
- }
-
- /**
* Compares a {@code CharSequence} to this {@code String} to determine if
* their contents are equal.
*
diff --git a/luni/src/main/java/libcore/internal/StringPool.java b/luni/src/main/java/libcore/internal/StringPool.java
index 779a59a..9fe38f5 100644
--- a/luni/src/main/java/libcore/internal/StringPool.java
+++ b/luni/src/main/java/libcore/internal/StringPool.java
@@ -25,6 +25,18 @@ public final class StringPool {
private final String[] pool = new String[512];
+ private static boolean contentEquals(String s, char[] chars, int start, int length) {
+ if (s.length() != length) {
+ return false;
+ }
+ for (int i = 0; i < length; i++) {
+ if (chars[start + i] != s.charAt(i)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
/**
* Returns a string equal to {@code new String(array, start, length)}.
*/
@@ -41,7 +53,7 @@ public final class StringPool {
int index = hashCode & (pool.length - 1);
String pooled = pool[index];
- if (pooled != null && pooled.contentEquals(array, start, length)) {
+ if (pooled != null && contentEquals(pooled, array, start, length)) {
return pooled;
}