< prev index next >

src/hotspot/share/prims/methodHandles.cpp

Print this page

        

*** 333,342 **** --- 333,348 ---- } oop MethodHandles::init_field_MemberName(Handle mname, fieldDescriptor& fd, bool is_setter) { int flags = (jushort)( fd.access_flags().as_short() & JVM_RECOGNIZED_FIELD_MODIFIERS ); flags |= IS_FIELD | ((fd.is_static() ? JVM_REF_getStatic : JVM_REF_getField) << REFERENCE_KIND_SHIFT); + if (fd.is_flattenable()) { + flags |= JVM_ACC_FLATTENABLE; + } + if (fd.is_flattened()) { + flags |= JVM_ACC_FIELD_FLATTENED; + } if (is_setter) flags += ((JVM_REF_putField - JVM_REF_getField) << REFERENCE_KIND_SHIFT); int vmindex = fd.offset(); // determines the field uniquely when combined with static bit oop mname_oop = mname(); java_lang_invoke_MemberName::set_flags (mname_oop, flags);
*** 567,577 **** } else if (sig->char_at(0) != '(') { BasicType bt = char2type(sig->char_at(0)); if (is_subword_type(bt)) { bsig = vmSymbols::int_signature(); } else { ! assert(bt == T_OBJECT || bt == T_ARRAY, "is_basic_type_signature was false"); bsig = vmSymbols::object_signature(); } } else { ResourceMark rm; stringStream buffer(128); --- 573,583 ---- } else if (sig->char_at(0) != '(') { BasicType bt = char2type(sig->char_at(0)); if (is_subword_type(bt)) { bsig = vmSymbols::int_signature(); } else { ! assert(bt == T_OBJECT || bt == T_ARRAY || bt == T_VALUETYPE, "is_basic_type_signature was false"); bsig = vmSymbols::object_signature(); } } else { ResourceMark rm; stringStream buffer(128);
*** 586,596 **** buffer.put(')'); } if (arg_pos == keep_arg_pos) { buffer.write((char*) ss.raw_bytes(), (int) ss.raw_length()); ! } else if (bt == T_OBJECT || bt == T_ARRAY) { buffer.write(OBJ_SIG, OBJ_SIG_LEN); } else { if (is_subword_type(bt)) bt = T_INT; buffer.put(type2char(bt)); --- 592,602 ---- buffer.put(')'); } if (arg_pos == keep_arg_pos) { buffer.write((char*) ss.raw_bytes(), (int) ss.raw_length()); ! } else if (bt == T_OBJECT || bt == T_ARRAY || bt == T_VALUETYPE) { buffer.write(OBJ_SIG, OBJ_SIG_LEN); } else { if (is_subword_type(bt)) bt = T_INT; buffer.put(type2char(bt));
< prev index next >