changeset 4176:a428df0139f3

Initialize resolved as well as unresolved classes in the native implementation of HotSpotConstantPool.loadReferencedType()
author Peter Hofer <peter.hofer@jku.at>
date Mon, 02 Jan 2012 18:40:00 +0100
parents ea49d7abeb05
children 816a4408a853
files src/share/vm/graal/graalVMEntries.cpp src/share/vm/oops/constantPoolOop.cpp
diffstat 2 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/graal/graalVMEntries.cpp	Mon Jan 02 14:21:07 2012 +0100
+++ b/src/share/vm/graal/graalVMEntries.cpp	Mon Jan 02 18:40:00 2012 +0100
@@ -515,7 +515,7 @@
     tag = cp->tag_at(index);
   }
 
-  if (tag.is_unresolved_klass()) {
+  if (tag.is_unresolved_klass() || tag.is_klass()) {
     klassOop klass = cp->klass_at(index, CHECK);
     if (klass->klass_part()->oop_is_instance()) {
       instanceKlass::cast(klass)->initialize(CHECK);
--- a/src/share/vm/oops/constantPoolOop.cpp	Mon Jan 02 14:21:07 2012 +0100
+++ b/src/share/vm/oops/constantPoolOop.cpp	Mon Jan 02 18:40:00 2012 +0100
@@ -346,6 +346,7 @@
   int cpc_index = operand;
   DEBUG_ONLY(cpc_index -= CPCACHE_INDEX_TAG);
   assert((int)(u2)cpc_index == cpc_index, "clean u2");
+  assert(cache() != NULL, "cache not null, maybe class is resolved but not rewritten yet");
   int member_index = cache()->entry_at(cpc_index)->constant_pool_index();
   return member_index;
 }