Optimize TextLine#measureAllOffset performance
Bug: 238954768
Bug: 235353864
Test: atest StaticLayoutGetOffsetForHorizontalPerfTest
Change-Id: Ic3a1a8fc5ef5d160401d390b920f3f2a409528f0
diff --git a/libs/hwui/jni/Paint.cpp b/libs/hwui/jni/Paint.cpp
index ed453b1..f0a4bd0 100644
--- a/libs/hwui/jni/Paint.cpp
+++ b/libs/hwui/jni/Paint.cpp
@@ -517,10 +517,12 @@
MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize,
advancesArray.get());
+ float result = minikin::getRunAdvance(advancesArray.get(), buf, start, count, offset);
if (advances) {
+ minikin::distributeAdvances(advancesArray.get(), buf, start, count);
env->SetFloatArrayRegion(advances, advancesIndex, count, advancesArray.get());
}
- return minikin::getRunAdvance(advancesArray.get(), buf, start, count, offset);
+ return result;
}
static jfloat getRunAdvance___CIIIIZI_F(JNIEnv *env, jclass, jlong paintHandle, jcharArray text,