# HG changeset patch # User Peter Hofer # Date 1325526000 -3600 # Node ID a428df0139f33f0d6d5108fb6eba3eadc1d793fe # Parent ea49d7abeb055949dbe6cbbf94147259b362b734 Initialize resolved as well as unresolved classes in the native implementation of HotSpotConstantPool.loadReferencedType() diff -r ea49d7abeb05 -r a428df0139f3 src/share/vm/graal/graalVMEntries.cpp --- 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); diff -r ea49d7abeb05 -r a428df0139f3 src/share/vm/oops/constantPoolOop.cpp --- 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; }