< prev index next >

src/hotspot/share/opto/escape.cpp

Print this page

        

*** 991,1001 **** bool arg_has_oops = aat->isa_oopptr() && (aat->isa_oopptr()->klass() == NULL || aat->isa_instptr() || (aat->isa_aryptr() && aat->isa_aryptr()->klass()->is_obj_array_klass()) || (aat->isa_aryptr() && aat->isa_aryptr()->elem() != NULL && aat->isa_aryptr()->elem()->isa_valuetype() && ! aat->isa_aryptr()->elem()->isa_valuetype()->value_klass()->contains_oops())); if (i == TypeFunc::Parms) { src_has_oops = arg_has_oops; } // // src or dst could be j.l.Object when other is basic type array: --- 991,1001 ---- bool arg_has_oops = aat->isa_oopptr() && (aat->isa_oopptr()->klass() == NULL || aat->isa_instptr() || (aat->isa_aryptr() && aat->isa_aryptr()->klass()->is_obj_array_klass()) || (aat->isa_aryptr() && aat->isa_aryptr()->elem() != NULL && aat->isa_aryptr()->elem()->isa_valuetype() && ! aat->isa_aryptr()->elem()->value_klass()->contains_oops())); if (i == TypeFunc::Parms) { src_has_oops = arg_has_oops; } // // src or dst could be j.l.Object when other is basic type array:
*** 2129,2139 **** } else if (find_second_addp(n, n->in(AddPNode::Base)) != NULL) { // Ignore first AddP. } else { const Type* elemtype = adr_type->isa_aryptr()->elem(); if (elemtype->isa_valuetype() && field_offset != Type::OffsetBot) { ! ciValueKlass* vk = elemtype->is_valuetype()->value_klass(); field_offset += vk->first_field_offset(); bt = vk->get_field_by_offset(field_offset, false)->layout_type(); } else { bt = elemtype->array_element_basic_type(); } --- 2129,2139 ---- } else if (find_second_addp(n, n->in(AddPNode::Base)) != NULL) { // Ignore first AddP. } else { const Type* elemtype = adr_type->isa_aryptr()->elem(); if (elemtype->isa_valuetype() && field_offset != Type::OffsetBot) { ! ciValueKlass* vk = elemtype->value_klass(); field_offset += vk->first_field_offset(); bt = vk->get_field_by_offset(field_offset, false)->layout_type(); } else { bt = elemtype->array_element_basic_type(); }
< prev index next >