diff options
author | Elliott Hughes <enh@google.com> | 2014-07-29 21:58:08 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-07-29 17:36:25 +0000 |
commit | fd094c48fce10bf12593ed057ebc11ef56969df5 (patch) | |
tree | c669626c19315a8c530ca01094ce95ae6217e4c7 /luni/src/main | |
parent | 9ae2eb2e586d43f92c6339e9d7072ec1eef3f0ed (diff) | |
parent | 2c4a09f2af911621b415e84ee028b768ee0a3fcb (diff) | |
download | libcore-fd094c48fce10bf12593ed057ebc11ef56969df5.zip libcore-fd094c48fce10bf12593ed057ebc11ef56969df5.tar.gz libcore-fd094c48fce10bf12593ed057ebc11ef56969df5.tar.bz2 |
Merge "Fix Character.getDirectionality."
Diffstat (limited to 'luni/src/main')
-rw-r--r-- | luni/src/main/java/java/lang/Character.java | 23 | ||||
-rw-r--r-- | luni/src/main/native/java_lang_Character.cpp | 4 |
2 files changed, 15 insertions, 12 deletions
diff --git a/luni/src/main/java/java/lang/Character.java b/luni/src/main/java/java/lang/Character.java index 8efd6cd..e920a3e 100644 --- a/luni/src/main/java/java/lang/Character.java +++ b/luni/src/main/java/java/lang/Character.java @@ -2530,25 +2530,28 @@ public final class Character implements Serializable, Comparable<Character> { } /** - * Gets the Unicode directionality of the specified character. - * - * @param codePoint - * the Unicode code point to get the directionality of. - * @return the Unicode directionality of {@code codePoint}. + * Returns the Unicode directionality of the given code point. + * This will be one of the {@code DIRECTIONALITY_} constants. + * For characters whose directionality is undefined, or whose + * directionality has no appropriate constant in this class, + * {@code DIRECTIONALITY_UNDEFINED} is returned. */ public static byte getDirectionality(int codePoint) { if (getType(codePoint) == Character.UNASSIGNED) { return Character.DIRECTIONALITY_UNDEFINED; } - byte directionality = getDirectionalityImpl(codePoint); - if (directionality == -1) { - return -1; + byte directionality = getIcuDirectionality(codePoint); + if (directionality >= 0 && directionality < DIRECTIONALITY.length) { + return DIRECTIONALITY[directionality]; } - return DIRECTIONALITY[directionality]; + return Character.DIRECTIONALITY_UNDEFINED; } - private static native byte getDirectionalityImpl(int codePoint); + /** + * @hide - internal use only. + */ + public static native byte getIcuDirectionality(int codePoint); /** * Indicates whether the specified character is mirrored. diff --git a/luni/src/main/native/java_lang_Character.cpp b/luni/src/main/native/java_lang_Character.cpp index 2d1fcfc..4022f4b 100644 --- a/luni/src/main/native/java_lang_Character.cpp +++ b/luni/src/main/native/java_lang_Character.cpp @@ -33,7 +33,7 @@ static jint Character_getTypeImpl(JNIEnv*, jclass, jint codePoint) { return u_charType(codePoint); } -static jbyte Character_getDirectionalityImpl(JNIEnv*, jclass, jint codePoint) { +static jbyte Character_getIcuDirectionality(JNIEnv*, jclass, jint codePoint) { return u_charDirection(codePoint); } @@ -166,7 +166,7 @@ static jboolean Character_isIdeographic(JNIEnv*, jclass, jint codePoint) { static JNINativeMethod gMethods[] = { NATIVE_METHOD(Character, digitImpl, "!(II)I"), - NATIVE_METHOD(Character, getDirectionalityImpl, "!(I)B"), + NATIVE_METHOD(Character, getIcuDirectionality, "!(I)B"), NATIVE_METHOD(Character, getNameImpl, "(I)Ljava/lang/String;"), NATIVE_METHOD(Character, getNumericValueImpl, "!(I)I"), NATIVE_METHOD(Character, getTypeImpl, "!(I)I"), |