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,