diff -r b5c5d51ddc4b -r 12e866a32b40 emul/src/main/java/java/lang/String.java --- a/emul/src/main/java/java/lang/String.java Fri Jan 11 16:07:55 2013 +0100 +++ b/emul/src/main/java/java/lang/String.java Fri Jan 11 16:36:28 2013 +0100 @@ -1769,60 +1769,7 @@ @JavaScriptBody(args = { "self", "str", "fromIndex" }, body = "return self.toString().indexOf(str.toString(), fromIndex);" ) - public int indexOf(String str, int fromIndex) { - return indexOf(toCharArray(), offset(), length(), str.toCharArray(), str.offset(), str.length(), fromIndex); - } - - /** - * Code shared by String and StringBuffer to do searches. The - * source is the character array being searched, and the target - * is the string being searched for. - * - * @param source the characters being searched. - * @param sourceOffset offset of the source string. - * @param sourceCount count of the source string. - * @param target the characters being searched for. - * @param targetOffset offset of the target string. - * @param targetCount count of the target string. - * @param fromIndex the index to begin searching from. - */ - static int indexOf(char[] source, int sourceOffset, int sourceCount, - char[] target, int targetOffset, int targetCount, - int fromIndex) { - if (fromIndex >= sourceCount) { - return (targetCount == 0 ? sourceCount : -1); - } - if (fromIndex < 0) { - fromIndex = 0; - } - if (targetCount == 0) { - return fromIndex; - } - - char first = target[targetOffset]; - int max = sourceOffset + (sourceCount - targetCount); - - for (int i = sourceOffset + fromIndex; i <= max; i++) { - /* Look for first character. */ - if (source[i] != first) { - while (++i <= max && source[i] != first); - } - - /* Found first character, now look at the rest of v2 */ - if (i <= max) { - int j = i + 1; - int end = j + targetCount - 1; - for (int k = targetOffset + 1; j < end && source[j] == - target[k]; j++, k++); - - if (j == end) { - /* Found whole string. */ - return i - sourceOffset; - } - } - } - return -1; - } + public native int indexOf(String str, int fromIndex); /** * Returns the index within this string of the last occurrence of the