diff src/share/vm/c1x/c1x_CodeInstaller.cpp @ 2050:b6d2c238e585

Two fixes for leaf type and leaf method assumptions.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Tue, 11 Jan 2011 11:55:19 +0100
parents 7e09ea4a8f36
children 3c0a889a176b
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_CodeInstaller.cpp	Mon Jan 10 16:59:48 2011 +0100
+++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp	Tue Jan 11 11:55:19 2011 +0100
@@ -303,9 +303,8 @@
   ciKlass* context = (ciKlass*) CURRENT_ENV->get_object(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(context_oop)));
   ciKlass* type = (ciKlass*) CURRENT_ENV->get_object(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(type_oop)));
 
-  if (context == type) {
-    _dependencies->assert_leaf_type(type);
-  } else {
+  _dependencies->assert_leaf_type(type);
+  if (context != type) {
     assert(context->is_abstract(), "");
     ThreadToNativeFromVM trans(JavaThread::current());
     _dependencies->assert_abstract_with_unique_concrete_subtype(context, type);
@@ -323,7 +322,10 @@
   ciMethod* m = (ciMethod*) CURRENT_ENV->get_object(method);
   ciMethod* c = (ciMethod*) CURRENT_ENV->get_object(context);
   ciKlass* context_klass = c->holder();
-  _dependencies->assert_unique_concrete_method(context_klass, m);
+  {
+    ThreadToNativeFromVM trans(JavaThread::current());
+    _dependencies->assert_unique_concrete_method(context_klass, m);
+  }
 }
 
 void CodeInstaller::process_exception_handlers() {