Mercurial > hg > graal-jvmci-8
changeset 22464:3fb432661d59
make JVMCIRuntime::metadata_do return immediately if HotSpotJVMCIMetaAccessContext has not yet been loaded
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 25 Aug 2015 13:56:32 +0200 |
parents | d9f5c93a83d3 |
children | b14500c9da22 |
files | src/share/vm/jvmci/jvmciJavaAccess.hpp src/share/vm/jvmci/jvmciRuntime.cpp |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciJavaAccess.hpp Mon Aug 24 19:17:08 2015 -0700 +++ b/src/share/vm/jvmci/jvmciJavaAccess.hpp Tue Aug 25 13:56:32 2015 +0200 @@ -304,15 +304,17 @@ #define STATIC_OOPISH_FIELD(klassName, name, type, signature) \ static int _##name##_offset; \ static type name() { \ + assert(klassName::klass() != NULL, "Class not yet loaded: " #klassName); \ InstanceKlass* ik = InstanceKlass::cast(klassName::klass()); \ address addr = ik->static_field_addr(_##name##_offset - InstanceMirrorKlass::offset_of_static_fields()); \ if (UseCompressedOops) { \ - return (type) oopDesc::load_decode_heap_oop((narrowOop *)addr); \ + return (type) oopDesc::load_decode_heap_oop((narrowOop *)addr); \ } else { \ - return (type) oopDesc::load_decode_heap_oop((oop*)addr); \ + return (type) oopDesc::load_decode_heap_oop((oop*)addr); \ } \ } \ static void set_##name(type x) { \ + assert(klassName::klass() != NULL, "Class not yet loaded: " #klassName); \ InstanceKlass* ik = InstanceKlass::cast(klassName::klass()); \ address addr = ik->static_field_addr(_##name##_offset - InstanceMirrorKlass::offset_of_static_fields()); \ if (UseCompressedOops) { \
--- a/src/share/vm/jvmci/jvmciRuntime.cpp Mon Aug 24 19:17:08 2015 -0700 +++ b/src/share/vm/jvmci/jvmciRuntime.cpp Tue Aug 25 13:56:32 2015 +0200 @@ -710,6 +710,9 @@ } void JVMCIRuntime::metadata_do(void f(Metadata*)) { + if (HotSpotJVMCIMetaAccessContext::klass() == NULL) { + return; + } // WeakReference<HotSpotJVMCIMetaAccessContext>[] objArrayOop allContexts = HotSpotJVMCIMetaAccessContext::allContexts(); if (allContexts == NULL) {