fix argument mismatches in Paint JNI

Paint.getTextRunCursor() no longer has a "flags" argument on the Java
side. The native side, however, still had the argument, and was being
called with misaligned arguments, causing all manner of madcap fun.

Also, the version of Paint.getTextRunCursor() that took String as an
argument needed to lose the "flags" argument, as well, to prevent an
infinite loop in the CharSequence version of the function, which was
supposed to be calling the String version but was actually calling
itself.

Bug: 8201224
Change-Id: Iad0dabaf81185f29a082566cc64590f2ba9bc31c
This commit is contained in:
Victoria Lease
2013-02-14 15:58:46 -08:00
committed by The Android Automerger
parent 4509b1fb58
commit ef60fa95b2
2 changed files with 6 additions and 6 deletions

View File

@@ -548,7 +548,7 @@ public:
}
static jint doTextRunCursor(JNIEnv *env, SkPaint* paint, const jchar *text, jint start,
jint count, jint flags, jint offset, jint opt) {
jint count, jint offset, jint opt) {
jfloat scalarArray[count];
TextLayout::getTextRunAdvances(paint, text, start, count, start + count,
@@ -592,19 +592,19 @@ public:
}
static jint getTextRunCursor___C(JNIEnv* env, jobject clazz, SkPaint* paint, jcharArray text,
jint contextStart, jint contextCount, jint flags, jint offset, jint cursorOpt) {
jint contextStart, jint contextCount, jint offset, jint cursorOpt) {
jchar* textArray = env->GetCharArrayElements(text, NULL);
jint result = doTextRunCursor(env, paint, textArray, contextStart, contextCount, flags,
jint result = doTextRunCursor(env, paint, textArray, contextStart, contextCount,
offset, cursorOpt);
env->ReleaseCharArrayElements(text, textArray, JNI_ABORT);
return result;
}
static jint getTextRunCursor__String(JNIEnv* env, jobject clazz, SkPaint* paint, jstring text,
jint contextStart, jint contextEnd, jint flags, jint offset, jint cursorOpt) {
jint contextStart, jint contextEnd, jint offset, jint cursorOpt) {
const jchar* textArray = env->GetStringChars(text, NULL);
jint result = doTextRunCursor(env, paint, textArray, contextStart,
contextEnd - contextStart, flags, offset, cursorOpt);
contextEnd - contextStart, offset, cursorOpt);
env->ReleaseStringChars(text, textArray);
return result;
}

View File

@@ -1849,7 +1849,7 @@ public class Paint {
* @hide
*/
public int getTextRunCursor(String text, int contextStart, int contextEnd,
int flags, int offset, int cursorOpt) {
int offset, int cursorOpt) {
if (((contextStart | contextEnd | offset | (contextEnd - contextStart)
| (offset - contextStart) | (contextEnd - offset)
| (text.length() - contextEnd) | cursorOpt) < 0)