void InstanceClass::initialize(JVM_SINGLE_ARG_TRAPS) { JavaClassObj::Raw mirror = java_mirror(); if (mirror().is_initialized()) { return; } initialize_internal(Thread::current(), &mirror JVM_CHECK); }
void InstanceClass::set_verified() { ClassInfo::Raw info = class_info(); info().set_is_verified(); #if !ENABLE_ISOLATES JavaClassObj::Raw mirror = java_mirror(); mirror().set_verified(); #endif }
bool InstanceClass::is_verified() { ClassInfo::Raw info = class_info(); bool result = info().is_verified(); #if !ENABLE_ISOLATES && defined(AZZERT) // Verify that the flag in ClassInfo is in-sync with the mirror object JavaClassObj::Raw mirror = java_mirror(); GUARANTEE(mirror().is_verified() == result, "sanity"); #endif return result; }
// ------------------------------------------------------------------ // ciInstanceKlass::ciInstanceKlass // // Loaded instance klass. ciInstanceKlass::ciInstanceKlass(KlassHandle h_k) : ciKlass(h_k) { assert(get_Klass()->oop_is_instance(), "wrong type"); instanceKlass* ik = get_instanceKlass(); AccessFlags access_flags = ik->access_flags(); _flags = ciFlags(access_flags); _has_finalizer = access_flags.has_finalizer(); _has_subklass = ik->subklass() != NULL; _is_initialized = ik->is_initialized(); _is_being_initialized = ik->is_being_initialized(); _size_helper = ik->size_helper(); _nonstatic_field_size = ik->nonstatic_field_size(); _checked_implementor = false; _implementor = NULL; Thread *thread = Thread::current(); if (ciObjectFactory::shared_is_initialized()) { _loader = JNIHandles::make_local(thread, ik->class_loader()); _protection_domain = JNIHandles::make_local(thread, ik->protection_domain()); _is_shared = false; } else { Handle h_loader(thread, ik->class_loader()); Handle h_protection_domain(thread, ik->protection_domain()); _loader = JNIHandles::make_global(h_loader, false); _protection_domain = JNIHandles::make_global(h_protection_domain, false); _is_shared = true; } // Lazy fields get filled in only upon request. _super = NULL; _java_mirror = NULL; if (_is_shared) { if (h_k() != SystemDictionary::object_klass()) { super(); } java_mirror(); } _field_cache = NULL; }
bool InstanceClass::is_initialized() { JavaClassObj::Raw mirror = java_mirror(); return mirror().is_initialized(); }
void InstanceClass::set_initialized() { JavaClassObj::Raw mirror = java_mirror(); mirror().set_initialized(); }