< prev index next >

src/share/vm/opto/type.cpp

Print this page
rev 10513 : fix incremental inlining with value types

*** 1833,1843 **** for (int i = 0; i < sig->count(); i++) { ciType* type = sig->type_at(i); if (type->basic_type() == T_VALUETYPE) { assert(type->is_valuetype(), "inconsistent type"); ciValueKlass* vk = (ciValueKlass*)type; ! vt_extra += vk->extra_value_args(); } } assert(((int)arg_cnt) + vt_extra >= 0, "negative number of actual arguments?"); } --- 1833,1843 ---- for (int i = 0; i < sig->count(); i++) { ciType* type = sig->type_at(i); if (type->basic_type() == T_VALUETYPE) { assert(type->is_valuetype(), "inconsistent type"); ciValueKlass* vk = (ciValueKlass*)type; ! vt_extra += vk->value_arg_slots()-1; } } assert(((int)arg_cnt) + vt_extra >= 0, "negative number of actual arguments?"); }
*** 1845,1855 **** const Type **field_array; if (recv != NULL) { arg_cnt++; if (vt_fields_as_args && recv->is_valuetype()) { ciValueKlass* vk = (ciValueKlass*)recv; ! vt_extra += vk->extra_value_args(); } field_array = fields(arg_cnt + vt_extra); // Use get_const_type here because it respects UseUniqueSubclasses: if (vt_fields_as_args && recv->is_valuetype()) { ciValueKlass* vk = (ciValueKlass*)recv; --- 1845,1855 ---- const Type **field_array; if (recv != NULL) { arg_cnt++; if (vt_fields_as_args && recv->is_valuetype()) { ciValueKlass* vk = (ciValueKlass*)recv; ! vt_extra += vk->value_arg_slots()-1; } field_array = fields(arg_cnt + vt_extra); // Use get_const_type here because it respects UseUniqueSubclasses: if (vt_fields_as_args && recv->is_valuetype()) { ciValueKlass* vk = (ciValueKlass*)recv;
< prev index next >