Move JNI_OnLoad to separate file which registers both fbjni and jni methods
Summary: Move JNI_ONLoad to a separate file so that both fbjni native methods and vanillla jni native methods can be initialized correctly Reviewed By: amir-shalem Differential Revision: D17840166 fbshipit-source-id: 045df0df7a95bc331cbbefb3a118a349f3029465
This commit is contained in:
committed by
Facebook Github Bot
parent
aa2610c2dd
commit
2e321fc69f
@@ -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;
|
||||
}
|
||||
|
22
java/jni/yogajni.cpp
Normal file
22
java/jni/yogajni.cpp
Normal file
@@ -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 <fbjni/fbjni.h>
|
||||
#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;
|
||||
}
|
11
java/jni/yogajni.h
Normal file
11
java/jni/yogajni.h
Normal file
@@ -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 <fbjni/fbjni.h>
|
||||
|
||||
namespace YGJNI {
|
||||
jint registerNativeMethods(JavaVM* vm);
|
||||
};
|
Reference in New Issue
Block a user