Skip to content

Commit e507d75

Browse files
committed
check for method found before trying to invoke it
removed commented code
1 parent 7573791 commit e507d75

File tree

1 file changed

+6
-45
lines changed

1 file changed

+6
-45
lines changed

src/jni/NativeScriptRuntime.cpp

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,6 @@ void NativeScriptRuntime::CallJavaMethod(const Handle<Object>& caller, const str
212212
if (clazz == nullptr)
213213
{
214214
ASSERT_FAIL("Cannot resolve caller's class name: %s", callerClassName.c_str());
215-
APP_FAIL("Cannot resolve caller's class name");
216215
return;
217216
}
218217

@@ -225,9 +224,13 @@ void NativeScriptRuntime::CallJavaMethod(const Handle<Object>& caller, const str
225224
entry->memberId = isStatic ?
226225
env.GetStaticMethodID(entry->clazz, methodName, entry->sig) :
227226
env.GetMethodID(entry->clazz, methodName, entry->sig);
228-
}
229-
230227

228+
if (entry->memberId == nullptr)
229+
{
230+
ASSERT_FAIL("Cannot resolve a method %s on class: %s", methodName.c_str(), className.c_str());
231+
return;
232+
}
233+
}
231234
}
232235

233236
if (entry->clazz != nullptr)
@@ -237,51 +240,9 @@ void NativeScriptRuntime::CallJavaMethod(const Handle<Object>& caller, const str
237240
}
238241

239242
sig = entry->sig;
240-
241-
242-
// if (entry->memberId == nullptr)
243-
// {
244-
// entry->clazz = env.FindClass(className);
245-
// if (entry->clazz == nullptr)
246-
// {
247-
// MetadataNode* callerNode = MetadataNode::GetNodeFromHandle(caller);
248-
// const string callerClassName = callerNode->GetName();
249-
//
250-
// DEBUG_WRITE("Cannot resolve class: %s while calling method: %s callerClassName: %s", className.c_str(), methodName.c_str(), callerClassName.c_str());
251-
// clazz = env.FindClass(callerClassName);
252-
// if (clazz == nullptr)
253-
// {
254-
// ASSERT_FAIL("Cannot resolve caller's class name: %s", callerClassName.c_str());
255-
// APP_FAIL("Cannot resolve caller's class name");
256-
// return;
257-
// }
258-
// }
259-
// else
260-
// {
261-
// clazz = entry->clazz;
262-
// }
263-
//
264-
// entry->memberId = isStatic ?
265-
// env.GetStaticMethodID(clazz, methodName, entry->sig) :
266-
// env.GetMethodID(clazz, methodName, entry->sig);
267-
// }
268-
//
269-
// if (entry->clazz != nullptr)
270-
// {
271-
// clazz = entry->clazz;
272-
// }
273-
//
274-
// mid = reinterpret_cast<jmethodID>(entry->memberId);
275-
// sig = entry->sig;
276243
}
277244
else
278245
{
279-
//nameri pravilnia klass koito e definiral tova ime za tekustata platforma
280-
//spesti resolvemethod call ako clasa s ime className go niama i tarsi napravo ot object na dolu koi e definiral tozi method i
281-
//vikai resolve na nego
282-
//sled tova zapazi v entrito na metoda koi e iskinskia className. to realno parametara classname idva nai veroiatno ot entrito
283-
//prosto mu smeni imeto
284-
285246
DEBUG_WRITE("Resolving method: %s.%s on className %s", className.c_str(), methodName.c_str(), className.c_str());
286247
auto mi = MethodCache::ResolveMethodSignature(className, methodName, args, isStatic);
287248
if (mi.mid == nullptr)

0 commit comments

Comments
 (0)