< prev index next >
src/share/vm/opto/graphKit.cpp
Print this page
*** 1607,1625 ****
ValueTypeNode* vt = arg->as_ValueType();
if (domain->field_at(i)->is_valuetypeptr()->klass() != C->env()->___Value_klass()) {
// We don't pass value type arguments by reference but instead
// pass each field of the value type
idx += vt->pass_fields(call, idx, *this);
} else {
arg = arg->as_ValueType()->allocate(this);
call->init_req(idx, arg);
idx++;
}
- // If a value type argument is passed as fields, attach the Method* to the call site
- // to be able to access the extended signature later via attached_method_before_pc().
- // For example, see CompiledMethod::preserve_callee_argument_oops().
- call->set_override_symbolic_info(true);
} else {
call->init_req(idx, arg);
idx++;
}
} else {
--- 1607,1625 ----
ValueTypeNode* vt = arg->as_ValueType();
if (domain->field_at(i)->is_valuetypeptr()->klass() != C->env()->___Value_klass()) {
// We don't pass value type arguments by reference but instead
// pass each field of the value type
idx += vt->pass_fields(call, idx, *this);
+ // If a value type argument is passed as fields, attach the Method* to the call site
+ // to be able to access the extended signature later via attached_method_before_pc().
+ // For example, see CompiledMethod::preserve_callee_argument_oops().
+ call->set_override_symbolic_info(true);
} else {
arg = arg->as_ValueType()->allocate(this);
call->init_req(idx, arg);
idx++;
}
} else {
call->init_req(idx, arg);
idx++;
}
} else {
< prev index next >