< prev index next >

src/hotspot/share/oops/instanceKlass.cpp

Print this page

        

*** 1121,1131 **** // Step 8 // Initialize classes of flattenable fields { for (AllFieldStream fs(this); !fs.done(); fs.next()) { if (fs.is_flattenable()) { ! InstanceKlass* field_klass = InstanceKlass::cast(this->get_value_field_klass(fs.index())); field_klass->initialize(CHECK); } } } --- 1121,1140 ---- // Step 8 // Initialize classes of flattenable fields { for (AllFieldStream fs(this); !fs.done(); fs.next()) { if (fs.is_flattenable()) { ! Klass* klass = this->get_value_field_klass_or_null(fs.index()); ! if (klass == NULL) { ! klass = SystemDictionary::resolve_or_fail(fs.signature()->fundamental_name(THREAD), Handle(THREAD, class_loader()), ! Handle(THREAD, protection_domain()), true, CHECK); ! this->set_value_field_klass(fs.index(), InstanceKlass::cast(klass)); ! } ! if (!klass->is_value()) { ! THROW(vmSymbols::java_lang_IncompatibleClassChangeError()); ! } ! InstanceKlass* field_klass = InstanceKlass::cast(klass); field_klass->initialize(CHECK); } } }
< prev index next >