changeset 1477:30e1f67703da

Fix for failed method lookup.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Fri, 26 Nov 2010 13:52:15 +0100
parents 1f81c0d18c75
children 5571b97fc1ec
files src/share/vm/c1x/c1x_VMEntries.cpp
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_VMEntries.cpp	Fri Nov 26 12:12:35 2010 +0100
+++ b/src/share/vm/c1x/c1x_VMEntries.cpp	Fri Nov 26 13:52:15 2010 +0100
@@ -314,7 +314,16 @@
   VM_ENTRY_MARK;
 
   klassOop klass = VmIds::get<klassOop>(vmId);
-  methodOop method = klass->klass_part()->lookup_method(VmIds::toSymbol(name), VmIds::toSymbol(signature));
+  symbolOop name_symbol = VmIds::toSymbol(name);
+  symbolOop signature_symbol = VmIds::toSymbol(signature);
+  methodOop method = klass->klass_part()->lookup_method(name_symbol, signature_symbol);
+  if (method == NULL) {
+    if (TraceC1X >= 3) {
+      ResourceMark rm;
+      tty->print_cr("Could not resolve method %s %s on klass %d", name_symbol->as_C_string(), signature_symbol->as_C_string(), klass->klass_part()->name()->as_C_string());
+    }
+    return NULL;
+  }
   return JNIHandles::make_local(THREAD, VMExits::createRiMethodResolved(VmIds::add<methodOop>(method), Handle(JNIHandles::resolve(name)), THREAD));
 }