src/share/vm/opto/macro.cpp

changeset 741
af945ba2e739
parent 688
b0fe4deeb9fb
child 797
f8199438385b
equal deleted inserted replaced
740:ab075d07f1ba 741:af945ba2e739
592 sobj->init_req(0, sfpt->in(TypeFunc::Control)); 592 sobj->init_req(0, sfpt->in(TypeFunc::Control));
593 transform_later(sobj); 593 transform_later(sobj);
594 594
595 // Scan object's fields adding an input to the safepoint for each field. 595 // Scan object's fields adding an input to the safepoint for each field.
596 for (int j = 0; j < nfields; j++) { 596 for (int j = 0; j < nfields; j++) {
597 int offset; 597 intptr_t offset;
598 ciField* field = NULL; 598 ciField* field = NULL;
599 if (iklass != NULL) { 599 if (iklass != NULL) {
600 field = iklass->nonstatic_field_at(j); 600 field = iklass->nonstatic_field_at(j);
601 offset = field->offset(); 601 offset = field->offset();
602 elem_type = field->type(); 602 elem_type = field->type();
603 basic_elem_type = field->layout_type(); 603 basic_elem_type = field->layout_type();
604 } else { 604 } else {
605 offset = array_base + j * element_size; 605 offset = array_base + j * (intptr_t)element_size;
606 } 606 }
607 607
608 const Type *field_type; 608 const Type *field_type;
609 // The next code is taken from Parse::do_get_xxx(). 609 // The next code is taken from Parse::do_get_xxx().
610 if (basic_elem_type == T_OBJECT || basic_elem_type == T_ARRAY) { 610 if (basic_elem_type == T_OBJECT || basic_elem_type == T_ARRAY) {

mercurial