diff --git a/java/jni/YGJNI.cpp b/java/jni/YGJNI.cpp index 9f976920..493e26b3 100644 --- a/java/jni/YGJNI.cpp +++ b/java/jni/YGJNI.cpp @@ -17,6 +17,7 @@ #include "YGJTypes.h" #include "YGJNIVanilla.h" #include "YGJNI.h" +#include "yogajni.h" using namespace facebook::jni; using namespace std; @@ -616,7 +617,7 @@ void jni_YGNodeStyleSetBorder(jlong nativePointer, jint edge, jfloat border) { #define YGMakeCriticalNativeMethod(name) \ makeCriticalNativeMethod_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(#name, name) -jint JNI_OnLoad(JavaVM* vm, void*) { +jint YGJNI::registerNativeMethods(JavaVM* vm) { jint ret = initialize(vm, [] { registerNatives( "com/facebook/yoga/YogaNative", @@ -717,6 +718,5 @@ jint JNI_OnLoad(JavaVM* vm, void*) { jni_YGConfigSetShouldDiffLayoutWithoutLegacyStretchBehaviour), }); }); - YGJNIVanilla::registerNatives(Environment::current()); return ret; } diff --git a/java/jni/yogajni.cpp b/java/jni/yogajni.cpp new file mode 100644 index 00000000..75f84abc --- /dev/null +++ b/java/jni/yogajni.cpp @@ -0,0 +1,22 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + */ +#include "yogajni.h" +#include "YGJNIVanilla.h" +#include +#include "common.h" + +using namespace facebook::jni; +using namespace facebook::yoga; + +jint JNI_OnLoad(JavaVM* vm, void*) { + jint ret = YGJNI::registerNativeMethods(vm); + + JNIEnv* env; + vanillajni::ensureInitialized(&env, vm); + YGJNIVanilla::registerNatives(env); + return ret; +} diff --git a/java/jni/yogajni.h b/java/jni/yogajni.h new file mode 100644 index 00000000..23eba1fd --- /dev/null +++ b/java/jni/yogajni.h @@ -0,0 +1,11 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + */ +#include + +namespace YGJNI { +jint registerNativeMethods(JavaVM* vm); +};