Skip to content

Commit 62d8a91

Browse files
davidaureliofacebook-github-bot
authored andcommitted
Switch style getters to JNI fast calls
Summary: @public After changing native methods to return `long` rather than `YogaValue`, we switch them to JNI fast calls, as there is no more interaction with the Java GC. Reviewed By: pasqualeanatriello Differential Revision: D14576815 fbshipit-source-id: b5a33caef7343ba1de3d9634a50dc82ab3148cc7
1 parent ca46c67 commit 62d8a91

File tree

1 file changed

+14
-21
lines changed

1 file changed

+14
-21
lines changed

java/jni/YGJNI.cpp

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ void jni_YGNodeCopyStyle(jlong dstNativePointer, jlong srcNativePointer) {
486486
}
487487

488488
#define YG_NODE_JNI_STYLE_UNIT_PROP(name) \
489-
jlong jni_YGNodeStyleGet##name(alias_ref<jclass>, jlong nativePointer) { \
489+
jlong jni_YGNodeStyleGet##name(jlong nativePointer) { \
490490
return YogaValue::asJavaLong( \
491491
YGNodeStyleGet##name(_jlong2YGNodeRef(nativePointer))); \
492492
} \
@@ -522,8 +522,7 @@ void jni_YGNodeCopyStyle(jlong dstNativePointer, jlong srcNativePointer) {
522522
}
523523

524524
#define YG_NODE_JNI_STYLE_EDGE_UNIT_PROP(name) \
525-
jlong jni_YGNodeStyleGet##name( \
526-
alias_ref<jclass>, jlong nativePointer, jint edge) { \
525+
jlong jni_YGNodeStyleGet##name(jlong nativePointer, jint edge) { \
527526
return YogaValue::asJavaLong(YGNodeStyleGet##name( \
528527
_jlong2YGNodeRef(nativePointer), static_cast<YGEdge>(edge))); \
529528
} \
@@ -854,10 +853,7 @@ jint jni_YGNodeGetInstanceCount() {
854853
return YGNodeGetInstanceCount();
855854
}
856855

857-
jlong jni_YGNodeStyleGetMargin(
858-
alias_ref<jclass>,
859-
jlong nativePointer,
860-
jint edge) {
856+
jlong jni_YGNodeStyleGetMargin(jlong nativePointer, jint edge) {
861857
YGNodeRef yogaNodeRef = _jlong2YGNodeRef(nativePointer);
862858
if (!YGNodeEdges{yogaNodeRef}.has(YGNodeEdges::MARGIN)) {
863859
return YogaValue::undefinedAsJavaLong();
@@ -889,10 +885,7 @@ void jni_YGNodeStyleSetMarginAuto(jlong nativePointer, jint edge) {
889885
YGNodeStyleSetMarginAuto(yogaNodeRef, static_cast<YGEdge>(edge));
890886
}
891887

892-
jlong jni_YGNodeStyleGetPadding(
893-
alias_ref<jclass>,
894-
jlong nativePointer,
895-
jint edge) {
888+
jlong jni_YGNodeStyleGetPadding(jlong nativePointer, jint edge) {
896889
YGNodeRef yogaNodeRef = _jlong2YGNodeRef(nativePointer);
897890
if (!YGNodeEdges{yogaNodeRef}.has(YGNodeEdges::PADDING)) {
898891
return YogaValue::undefinedAsJavaLong();
@@ -985,40 +978,40 @@ jint JNI_OnLoad(JavaVM* vm, void*) {
985978
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetFlexGrow),
986979
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetFlexShrink),
987980
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetFlexShrink),
988-
YGMakeNativeMethod(jni_YGNodeStyleGetFlexBasis),
981+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetFlexBasis),
989982
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetFlexBasis),
990983
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetFlexBasisPercent),
991984
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetFlexBasisAuto),
992-
YGMakeNativeMethod(jni_YGNodeStyleGetMargin),
985+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetMargin),
993986
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMargin),
994987
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMarginPercent),
995988
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMarginAuto),
996-
YGMakeNativeMethod(jni_YGNodeStyleGetPadding),
989+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetPadding),
997990
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetPadding),
998991
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetPaddingPercent),
999992
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetBorder),
1000993
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetBorder),
1001-
YGMakeNativeMethod(jni_YGNodeStyleGetPosition),
994+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetPosition),
1002995
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetPosition),
1003996
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetPositionPercent),
1004-
YGMakeNativeMethod(jni_YGNodeStyleGetWidth),
997+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetWidth),
1005998
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetWidth),
1006999
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetWidthPercent),
10071000
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetWidthAuto),
1008-
YGMakeNativeMethod(jni_YGNodeStyleGetHeight),
1001+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetHeight),
10091002
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetHeight),
10101003
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetHeightPercent),
10111004
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetHeightAuto),
1012-
YGMakeNativeMethod(jni_YGNodeStyleGetMinWidth),
1005+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetMinWidth),
10131006
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMinWidth),
10141007
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMinWidthPercent),
1015-
YGMakeNativeMethod(jni_YGNodeStyleGetMinHeight),
1008+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetMinHeight),
10161009
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMinHeight),
10171010
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMinHeightPercent),
1018-
YGMakeNativeMethod(jni_YGNodeStyleGetMaxWidth),
1011+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetMaxWidth),
10191012
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMaxWidth),
10201013
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMaxWidthPercent),
1021-
YGMakeNativeMethod(jni_YGNodeStyleGetMaxHeight),
1014+
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetMaxHeight),
10221015
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMaxHeight),
10231016
YGMakeCriticalNativeMethod(jni_YGNodeStyleSetMaxHeightPercent),
10241017
YGMakeCriticalNativeMethod(jni_YGNodeStyleGetAspectRatio),

0 commit comments

Comments
 (0)