Enable fast jni for simple RenderNode/Matrix/Paint operations

bug:17895119

Change-Id: Id83bfd719ec873028f0d4e7e4e4c0702f3bb3dd9
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index 4bb31fc..6b02326 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -939,58 +939,60 @@
     {"finalizer", "(J)V", (void*) PaintGlue::finalizer},
     {"native_init","()J", (void*) PaintGlue::init},
     {"native_initWithPaint","(J)J", (void*) PaintGlue::initWithPaint},
-    {"native_reset","(J)V", (void*) PaintGlue::reset},
-    {"native_set","(JJ)V", (void*) PaintGlue::assign},
-    {"getFlags","()I", (void*) PaintGlue::getFlags},
-    {"setFlags","(I)V", (void*) PaintGlue::setFlags},
-    {"getHinting","()I", (void*) PaintGlue::getHinting},
-    {"setHinting","(I)V", (void*) PaintGlue::setHinting},
-    {"setAntiAlias","(Z)V", (void*) PaintGlue::setAntiAlias},
-    {"setSubpixelText","(Z)V", (void*) PaintGlue::setSubpixelText},
-    {"setLinearText","(Z)V", (void*) PaintGlue::setLinearText},
-    {"setUnderlineText","(Z)V", (void*) PaintGlue::setUnderlineText},
-    {"setStrikeThruText","(Z)V", (void*) PaintGlue::setStrikeThruText},
-    {"setFakeBoldText","(Z)V", (void*) PaintGlue::setFakeBoldText},
-    {"setFilterBitmap","(Z)V", (void*) PaintGlue::setFilterBitmap},
-    {"setDither","(Z)V", (void*) PaintGlue::setDither},
-    {"native_getStyle","(J)I", (void*) PaintGlue::getStyle},
-    {"native_setStyle","(JI)V", (void*) PaintGlue::setStyle},
-    {"getColor","()I", (void*) PaintGlue::getColor},
-    {"setColor","(I)V", (void*) PaintGlue::setColor},
-    {"getAlpha","()I", (void*) PaintGlue::getAlpha},
-    {"setAlpha","(I)V", (void*) PaintGlue::setAlpha},
-    {"getStrokeWidth","()F", (void*) PaintGlue::getStrokeWidth},
-    {"setStrokeWidth","(F)V", (void*) PaintGlue::setStrokeWidth},
-    {"getStrokeMiter","()F", (void*) PaintGlue::getStrokeMiter},
-    {"setStrokeMiter","(F)V", (void*) PaintGlue::setStrokeMiter},
-    {"native_getStrokeCap","(J)I", (void*) PaintGlue::getStrokeCap},
-    {"native_setStrokeCap","(JI)V", (void*) PaintGlue::setStrokeCap},
-    {"native_getStrokeJoin","(J)I", (void*) PaintGlue::getStrokeJoin},
-    {"native_setStrokeJoin","(JI)V", (void*) PaintGlue::setStrokeJoin},
-    {"native_getFillPath","(JJJ)Z", (void*) PaintGlue::getFillPath},
-    {"native_setShader","(JJ)J", (void*) PaintGlue::setShader},
-    {"native_setColorFilter","(JJ)J", (void*) PaintGlue::setColorFilter},
-    {"native_setXfermode","(JJ)J", (void*) PaintGlue::setXfermode},
-    {"native_setPathEffect","(JJ)J", (void*) PaintGlue::setPathEffect},
-    {"native_setMaskFilter","(JJ)J", (void*) PaintGlue::setMaskFilter},
-    {"native_setTypeface","(JJ)J", (void*) PaintGlue::setTypeface},
-    {"native_setRasterizer","(JJ)J", (void*) PaintGlue::setRasterizer},
-    {"native_getTextAlign","(J)I", (void*) PaintGlue::getTextAlign},
-    {"native_setTextAlign","(JI)V", (void*) PaintGlue::setTextAlign},
-    {"native_setTextLocale","(JLjava/lang/String;)V", (void*) PaintGlue::setTextLocale},
-    {"isElegantTextHeight","()Z", (void*) PaintGlue::isElegantTextHeight},
-    {"setElegantTextHeight","(Z)V", (void*) PaintGlue::setElegantTextHeight},
-    {"getTextSize","()F", (void*) PaintGlue::getTextSize},
-    {"setTextSize","(F)V", (void*) PaintGlue::setTextSize},
-    {"getTextScaleX","()F", (void*) PaintGlue::getTextScaleX},
-    {"setTextScaleX","(F)V", (void*) PaintGlue::setTextScaleX},
-    {"getTextSkewX","()F", (void*) PaintGlue::getTextSkewX},
-    {"setTextSkewX","(F)V", (void*) PaintGlue::setTextSkewX},
-    {"native_getLetterSpacing","(J)F", (void*) PaintGlue::getLetterSpacing},
-    {"native_setLetterSpacing","(JF)V", (void*) PaintGlue::setLetterSpacing},
+
+    {"native_reset","!(J)V", (void*) PaintGlue::reset},
+    {"native_set","!(JJ)V", (void*) PaintGlue::assign},
+    {"getFlags","!()I", (void*) PaintGlue::getFlags},
+    {"setFlags","!(I)V", (void*) PaintGlue::setFlags},
+    {"getHinting","!()I", (void*) PaintGlue::getHinting},
+    {"setHinting","!(I)V", (void*) PaintGlue::setHinting},
+    {"setAntiAlias","!(Z)V", (void*) PaintGlue::setAntiAlias},
+    {"setSubpixelText","!(Z)V", (void*) PaintGlue::setSubpixelText},
+    {"setLinearText","!(Z)V", (void*) PaintGlue::setLinearText},
+    {"setUnderlineText","!(Z)V", (void*) PaintGlue::setUnderlineText},
+    {"setStrikeThruText","!(Z)V", (void*) PaintGlue::setStrikeThruText},
+    {"setFakeBoldText","!(Z)V", (void*) PaintGlue::setFakeBoldText},
+    {"setFilterBitmap","!(Z)V", (void*) PaintGlue::setFilterBitmap},
+    {"setDither","!(Z)V", (void*) PaintGlue::setDither},
+    {"native_getStyle","!(J)I", (void*) PaintGlue::getStyle},
+    {"native_setStyle","!(JI)V", (void*) PaintGlue::setStyle},
+    {"getColor","!()I", (void*) PaintGlue::getColor},
+    {"setColor","!(I)V", (void*) PaintGlue::setColor},
+    {"getAlpha","!()I", (void*) PaintGlue::getAlpha},
+    {"setAlpha","!(I)V", (void*) PaintGlue::setAlpha},
+    {"getStrokeWidth","!()F", (void*) PaintGlue::getStrokeWidth},
+    {"setStrokeWidth","!(F)V", (void*) PaintGlue::setStrokeWidth},
+    {"getStrokeMiter","!()F", (void*) PaintGlue::getStrokeMiter},
+    {"setStrokeMiter","!(F)V", (void*) PaintGlue::setStrokeMiter},
+    {"native_getStrokeCap","!(J)I", (void*) PaintGlue::getStrokeCap},
+    {"native_setStrokeCap","!(JI)V", (void*) PaintGlue::setStrokeCap},
+    {"native_getStrokeJoin","!(J)I", (void*) PaintGlue::getStrokeJoin},
+    {"native_setStrokeJoin","!(JI)V", (void*) PaintGlue::setStrokeJoin},
+    {"native_getFillPath","!(JJJ)Z", (void*) PaintGlue::getFillPath},
+    {"native_setShader","!(JJ)J", (void*) PaintGlue::setShader},
+    {"native_setColorFilter","!(JJ)J", (void*) PaintGlue::setColorFilter},
+    {"native_setXfermode","!(JJ)J", (void*) PaintGlue::setXfermode},
+    {"native_setPathEffect","!(JJ)J", (void*) PaintGlue::setPathEffect},
+    {"native_setMaskFilter","!(JJ)J", (void*) PaintGlue::setMaskFilter},
+    {"native_setTypeface","!(JJ)J", (void*) PaintGlue::setTypeface},
+    {"native_setRasterizer","!(JJ)J", (void*) PaintGlue::setRasterizer},
+    {"native_getTextAlign","!(J)I", (void*) PaintGlue::getTextAlign},
+    {"native_setTextAlign","!(JI)V", (void*) PaintGlue::setTextAlign},
+    {"native_setTextLocale","!(JLjava/lang/String;)V", (void*) PaintGlue::setTextLocale},
+    {"isElegantTextHeight","!()Z", (void*) PaintGlue::isElegantTextHeight},
+    {"setElegantTextHeight","!(Z)V", (void*) PaintGlue::setElegantTextHeight},
+    {"getTextSize","!()F", (void*) PaintGlue::getTextSize},
+    {"setTextSize","!(F)V", (void*) PaintGlue::setTextSize},
+    {"getTextScaleX","!()F", (void*) PaintGlue::getTextScaleX},
+    {"setTextScaleX","!(F)V", (void*) PaintGlue::setTextScaleX},
+    {"getTextSkewX","!()F", (void*) PaintGlue::getTextSkewX},
+    {"setTextSkewX","!(F)V", (void*) PaintGlue::setTextSkewX},
+    {"native_getLetterSpacing","!(J)F", (void*) PaintGlue::getLetterSpacing},
+    {"native_setLetterSpacing","!(JF)V", (void*) PaintGlue::setLetterSpacing},
     {"native_setFontFeatureSettings","(JLjava/lang/String;)V", (void*) PaintGlue::setFontFeatureSettings},
-    {"ascent","()F", (void*) PaintGlue::ascent},
-    {"descent","()F", (void*) PaintGlue::descent},
+    {"ascent","!()F", (void*) PaintGlue::ascent},
+    {"descent","!()F", (void*) PaintGlue::descent},
+
     {"getFontMetrics", "(Landroid/graphics/Paint$FontMetrics;)F", (void*)PaintGlue::getFontMetrics},
     {"getFontMetricsInt", "(Landroid/graphics/Paint$FontMetricsInt;)I", (void*)PaintGlue::getFontMetricsInt},
     {"native_measureText","([CIII)F", (void*) PaintGlue::measureText_CIII},
@@ -1014,8 +1016,9 @@
                                         (void*) PaintGlue::getStringBounds },
     {"nativeGetCharArrayBounds", "(JJ[CIIILandroid/graphics/Rect;)V",
                                     (void*) PaintGlue::getCharArrayBounds },
-    {"native_setShadowLayer", "(JFFFI)V", (void*)PaintGlue::setShadowLayer},
-    {"native_hasShadowLayer", "(J)Z", (void*)PaintGlue::hasShadowLayer}
+
+    {"native_setShadowLayer", "!(JFFFI)V", (void*)PaintGlue::setShadowLayer},
+    {"native_hasShadowLayer", "!(J)Z", (void*)PaintGlue::hasShadowLayer}
 };
 
 static jfieldID req_fieldID(jfieldID id) {