Fix String.codePointAt.
Was passing the wrong indices to Character.codePointAt.
bug: 26126818
Change-Id: Id9edb51067c847bb8637bf614b21727b4a58f58a
diff --git a/luni/src/test/java/libcore/java/lang/StringTest.java b/luni/src/test/java/libcore/java/lang/StringTest.java
index c5948fc..2ba6109 100644
--- a/luni/src/test/java/libcore/java/lang/StringTest.java
+++ b/luni/src/test/java/libcore/java/lang/StringTest.java
@@ -416,4 +416,13 @@
assertEquals("", splits[6]);
assertEquals("", splits[7]);
}
+
+ // http://b/26126818
+ public void testCodePointCount() {
+ String hello = "Hello, fools";
+
+ assertEquals(5, hello.codePointCount(0, 5));
+ assertEquals(7, hello.codePointCount(5, 12));
+ assertEquals(2, hello.codePointCount(10, 12));
+ }
}
diff --git a/ojluni/src/main/java/java/lang/String.java b/ojluni/src/main/java/java/lang/String.java
index f4c6ce6..68b7ddd 100755
--- a/ojluni/src/main/java/java/lang/String.java
+++ b/ojluni/src/main/java/java/lang/String.java
@@ -656,7 +656,7 @@
if (beginIndex < 0 || endIndex > count || beginIndex > endIndex) {
throw new IndexOutOfBoundsException();
}
- return Character.codePointCount(this, beginIndex, endIndex - beginIndex);
+ return Character.codePointCount(this, beginIndex, endIndex);
}
/**