MCPcopy Create free account
hub / github.com/NativeScript/android / InitializeJNI

Method InitializeJNI

test-app/runtime/src/main/cpp/ObjectManager.cpp:48–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46}
47
48void ObjectManager::InitializeJNI() {
49 if (GET_JAVAOBJECT_BY_ID_METHOD_ID != nullptr) {
50 return;
51 }
52 JEnv env;
53 auto runtimeClass = env.FindClass("com/tns/Runtime");
54 assert(runtimeClass != nullptr);
55 GET_JAVAOBJECT_BY_ID_METHOD_ID = env.GetMethodID(
56 runtimeClass, "getJavaObjectByID", "(I)Ljava/lang/Object;");
57 assert(GET_JAVAOBJECT_BY_ID_METHOD_ID != nullptr);
58
59 GET_OR_CREATE_JAVA_OBJECT_ID_METHOD_ID = env.GetMethodID(
60 runtimeClass, "getOrCreateJavaObjectID", "(Ljava/lang/Object;)I");
61 assert(GET_OR_CREATE_JAVA_OBJECT_ID_METHOD_ID != nullptr);
62
63 MAKE_INSTANCE_WEAK_BATCH_METHOD_ID = env.GetMethodID(
64 runtimeClass, "makeInstanceWeak", "(Ljava/nio/ByteBuffer;IZ)V");
65 assert(MAKE_INSTANCE_WEAK_BATCH_METHOD_ID != nullptr);
66
67 MAKE_INSTANCE_WEAK_AND_CHECK_IF_ALIVE_METHOD_ID =
68 env.GetMethodID(runtimeClass, "makeInstanceWeakAndCheckIfAlive", "(I)Z");
69 assert(MAKE_INSTANCE_WEAK_AND_CHECK_IF_ALIVE_METHOD_ID != nullptr);
70
71 RELEASE_NATIVE_INSTANCE_METHOD_ID =
72 env.GetMethodID(runtimeClass, "releaseNativeCounterpart", "(I)V");
73 assert(RELEASE_NATIVE_INSTANCE_METHOD_ID != nullptr);
74
75 CHECK_WEAK_OBJECTS_ARE_ALIVE_METHOD_ID =
76 env.GetMethodID(runtimeClass, "checkWeakObjectAreAlive",
77 "(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;I)V");
78 assert(CHECK_WEAK_OBJECTS_ARE_ALIVE_METHOD_ID != nullptr);
79
80 JAVA_LANG_CLASS = env.FindClass("java/lang/Class");
81 assert(JAVA_LANG_CLASS != nullptr);
82
83 GET_NAME_METHOD_ID =
84 env.GetMethodID(JAVA_LANG_CLASS, "getName", "()Ljava/lang/String;");
85 assert(GET_NAME_METHOD_ID != nullptr);
86}
87
88void ObjectManager::SetInstanceIsolate(Isolate* isolate) {
89 m_isolate = isolate;

Callers

nothing calls this directly

Calls 2

GetMethodIDMethod · 0.80
FindClassMethod · 0.45

Tested by

no test coverage detected