Mercurial > hg > truffle
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; }