< 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 >