< prev index next >

src/share/vm/oops/valueKlass.cpp

Print this page

        

*** 312,321 **** --- 312,322 ---- if (fs.access_flags().is_static()) continue; fieldDescriptor& fd = fs.field_descriptor(); BasicType bt = fd.field_type(); int offset = base_off + fd.offset() - (base_off > 0 ? first_field_offset() : 0); if (bt == T_VALUETYPE) { + if (fd.is_flatten()) { Symbol* signature = fd.signature(); JavaThread* THREAD = JavaThread::current(); oop loader = class_loader(); oop domain = protection_domain(); ResetNoHandleMark rnhm;
*** 326,335 **** --- 327,339 ---- THREAD); assert(klass != NULL && !HAS_PENDING_EXCEPTION, "lookup shouldn't fail"); const GrowableArray<SigEntry>& embedded = ValueKlass::cast(klass)->collect_fields(offset); sig_extended.appendAll(&embedded); } else { + sig_extended.push(SigEntry(T_OBJECT, offset)); + } + } else { sig_extended.push(SigEntry(bt, offset)); if (bt == T_LONG || bt == T_DOUBLE) { sig_extended.push(SigEntry(T_VOID, offset)); } }
< prev index next >