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

Method ResolveJavaMethod

test-app/runtime/src/main/cpp/MethodCache.cpp:214–238  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

212}
213
214string MethodCache::ResolveJavaMethod(const FunctionCallbackInfo<Value>& args, const string& className, const string& methodName) {
215 JEnv env;
216
217 JsArgToArrayConverter argConverter(args, false);
218
219 auto canonicalClassName = Util::ConvertFromJniToCanonicalName(className);
220 JniLocalRef jsClassName(env.NewStringUTF(canonicalClassName.c_str()));
221 JniLocalRef jsMethodName(env.NewStringUTF(methodName.c_str()));
222
223 jobjectArray arrArgs = argConverter.ToJavaArray();
224
225 auto runtime = Runtime::GetRuntime(args.GetIsolate());
226
227 jstring signature = (jstring) env.CallObjectMethod(runtime->GetJavaRuntime(), RESOLVE_METHOD_OVERLOAD_METHOD_ID, (jstring) jsClassName, (jstring) jsMethodName, arrArgs);
228
229 string resolvedSignature;
230
231 const char* str = env.GetStringUTFChars(signature, nullptr);
232 resolvedSignature = string(str);
233 env.ReleaseStringUTFChars(signature, str);
234
235 env.DeleteLocalRef(signature);
236
237 return resolvedSignature;
238}
239
240string MethodCache::ResolveConstructor(const FunctionCallbackInfo<Value>& args, jclass javaClass, bool isInterface) {
241 JEnv env;

Callers

nothing calls this directly

Calls 8

NewStringUTFMethod · 0.80
ToJavaArrayMethod · 0.80
CallObjectMethodMethod · 0.80
GetJavaRuntimeMethod · 0.80
GetStringUTFCharsMethod · 0.80
ReleaseStringUTFCharsMethod · 0.80
DeleteLocalRefMethod · 0.80
GetIsolateMethod · 0.45

Tested by

no test coverage detected