src/share/vm/opto/arraycopynode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/arraycopynode.cpp Wed Sep 2 10:17:18 2015
--- new/src/share/vm/opto/arraycopynode.cpp Wed Sep 2 10:17:18 2015
*** 679,692 ****
--- 679,692 ----
if (dest_pos_t != NULL && len_t != NULL && ary_t != NULL) {
BasicType ary_elem = ary_t->klass()->as_array_klass()->element_type()->basic_type();
uint header = arrayOopDesc::base_offset_in_bytes(ary_elem);
uint elemsize = type2aelembytes(ary_elem);
! intptr_t dest_pos_plus_len_lo = (((intptr_t)dest_pos_t->_lo) + len_t->_lo) * elemsize + header;
! intptr_t dest_pos_plus_len_hi = (((intptr_t)dest_pos_t->_hi) + len_t->_hi) * elemsize + header;
! intptr_t dest_pos_lo = ((intptr_t)dest_pos_t->_lo) * elemsize + header;
! intptr_t dest_pos_hi = ((intptr_t)dest_pos_t->_hi) * elemsize + header;
! jlong dest_pos_plus_len_lo = (((jlong)dest_pos_t->_lo) + len_t->_lo) * elemsize + header;
! jlong dest_pos_plus_len_hi = (((jlong)dest_pos_t->_hi) + len_t->_hi) * elemsize + header;
! jlong dest_pos_lo = ((jlong)dest_pos_t->_lo) * elemsize + header;
! jlong dest_pos_hi = ((jlong)dest_pos_t->_hi) * elemsize + header;
if (must_modify) {
if (offset_lo >= dest_pos_hi && offset_hi < dest_pos_plus_len_lo) {
return true;
}
src/share/vm/opto/arraycopynode.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File