< prev index next >

src/share/vm/runtime/deoptimization.cpp

Print this page

        

*** 1025,1040 **** --- 1025,1046 ---- if (!fs.access_flags().is_static() && (!skip_internal || !fs.access_flags().is_internal())) { ReassignedField field; field._offset = fs.offset(); field._type = FieldType::basic_type(fs.signature()); if (field._type == T_VALUETYPE) { + if (fs.is_flatten()) { // Resolve klass of flattened value type field SignatureStream ss(fs.signature(), false); Klass* vk = ss.as_klass(Handle(THREAD, klass->class_loader()), Handle(THREAD, klass->protection_domain()), SignatureStream::NCDFError, THREAD); guarantee(!HAS_PENDING_EXCEPTION, "Should not have any exceptions pending"); assert(vk->is_value(), "must be a ValueKlass"); field._klass = InstanceKlass::cast(vk); + } else { + // Non-flattened value type field + // TODO change this when we use T_VALUETYPEPTR + field._type = T_OBJECT; + } } fields->append(field); } } fields->sort(compare);
< prev index next >