int NativeScriptRuntime::GetCachedConstructorId(JEnv& env, const FunctionCallbackInfo<Value>& args, const string& fullClassName, jobjectArray javaArgs, jclass javaClass) { int ctorId = -1; string encodedCtorArgs = MethodCache::EncodeSignature(fullClassName, "<init>", args, false); auto itFound = s_constructorCache.find(encodedCtorArgs); if (itFound != s_constructorCache.end()) { ctorId = itFound->second; } else { jint id = env.CallStaticIntMethod(PlatformClass, CACHE_CONSTRUCTOR_METHOD_ID, javaClass, javaArgs); if (env.ExceptionCheck() == JNI_FALSE) { ctorId = id; s_constructorCache.insert(make_pair(encodedCtorArgs, ctorId)); } } DEBUG_WRITE("GetCachedConstructorId: encodedCtorArgs=%s, ctorId=%d", encodedCtorArgs.c_str(), ctorId); return ctorId; }
int ObjectManager::GetOrCreateObjectId(jobject object) { JEnv env; jint javaObjectID = env.CallStaticIntMethod(PlatformClass, GET_OR_CREATE_JAVA_OBJECT_ID_METHOD_ID, object); return javaObjectID; }