66 */
77
88#include " YGJNIVanilla.h"
9+ #include < array>
910#include < bit>
1011#include < cstring>
1112#include < iostream>
@@ -276,7 +277,7 @@ YGTransferLayoutOutputsRecursive(JNIEnv* env, jobject thiz, YGNodeRef root) {
276277
277278 const int arrSize = 6 + (marginFieldSet ? 4 : 0 ) + (paddingFieldSet ? 4 : 0 ) +
278279 (borderFieldSet ? 4 : 0 );
279- float arr[ 18 ];
280+ std::array< float , 18 > arr; // NOLINT(cppcoreguidelines-pro-type-member-init)
280281 arr[LAYOUT_EDGE_SET_FLAG_INDEX ] = static_cast <float >(fieldFlags);
281282 arr[LAYOUT_WIDTH_INDEX ] = YGNodeLayoutGetWidth (root);
282283 arr[LAYOUT_HEIGHT_INDEX ] = YGNodeLayoutGetHeight (root);
@@ -293,17 +294,18 @@ YGTransferLayoutOutputsRecursive(JNIEnv* env, jobject thiz, YGNodeRef root) {
293294 YGNodeLayoutGetMargin (root, YGEdgeBottom);
294295 }
295296 if (paddingFieldSet) {
296- int paddingStartIndex =
297- LAYOUT_PADDING_START_INDEX - (marginFieldSet ? 0 : 4 );
297+ auto paddingStartIndex = static_cast < size_t >(
298+ LAYOUT_PADDING_START_INDEX - (marginFieldSet ? 0 : 4 )) ;
298299 arr[paddingStartIndex] = YGNodeLayoutGetPadding (root, YGEdgeLeft);
299300 arr[paddingStartIndex + 1 ] = YGNodeLayoutGetPadding (root, YGEdgeTop);
300301 arr[paddingStartIndex + 2 ] = YGNodeLayoutGetPadding (root, YGEdgeRight);
301302 arr[paddingStartIndex + 3 ] = YGNodeLayoutGetPadding (root, YGEdgeBottom);
302303 }
303304
304305 if (borderFieldSet) {
305- int borderStartIndex = LAYOUT_BORDER_START_INDEX -
306- (marginFieldSet ? 0 : 4 ) - (paddingFieldSet ? 0 : 4 );
306+ auto borderStartIndex = static_cast <size_t >(
307+ LAYOUT_BORDER_START_INDEX - (marginFieldSet ? 0 : 4 ) -
308+ (paddingFieldSet ? 0 : 4 ));
307309 arr[borderStartIndex] = YGNodeLayoutGetBorder (root, YGEdgeLeft);
308310 arr[borderStartIndex + 1 ] = YGNodeLayoutGetBorder (root, YGEdgeTop);
309311 arr[borderStartIndex + 2 ] = YGNodeLayoutGetBorder (root, YGEdgeRight);
@@ -321,7 +323,7 @@ YGTransferLayoutOutputsRecursive(JNIEnv* env, jobject thiz, YGNodeRef root) {
321323
322324 ScopedLocalRef<jfloatArray> arrFinal =
323325 make_local_ref (env, env->NewFloatArray (arrSize));
324- env->SetFloatArrayRegion (arrFinal.get (), 0 , arrSize, arr);
326+ env->SetFloatArrayRegion (arrFinal.get (), 0 , arrSize, arr. data () );
325327 env->SetObjectField (obj.get (), arrField, arrFinal.get ());
326328 }
327329
@@ -839,6 +841,7 @@ static void jni_YGNodeStyleSetGapPercentJNI(
839841// Yoga specific properties, not compatible with flexbox specification
840842YG_NODE_JNI_STYLE_PROP (jfloat, float , AspectRatio);
841843
844+ // NOLINTNEXTLINE(facebook-hte-CArray, modernize-avoid-c-arrays)
842845static JNINativeMethod methods[] = {
843846 {" jni_YGConfigNewJNI" , " ()J" , (void *)jni_YGConfigNewJNI},
844847 {" jni_YGConfigFreeJNI" , " (J)V" , (void *)jni_YGConfigFreeJNI},
0 commit comments