equal
deleted
inserted
replaced
105 BasicType elembt = element_basic_type(); |
105 BasicType elembt = element_basic_type(); |
106 intptr_t shift = exact_log2(type2aelembytes(elembt)); |
106 intptr_t shift = exact_log2(type2aelembytes(elembt)); |
107 intptr_t header = arrayOopDesc::base_offset_in_bytes(elembt); |
107 intptr_t header = arrayOopDesc::base_offset_in_bytes(elembt); |
108 intptr_t index = (element_offset - header) >> shift; |
108 intptr_t index = (element_offset - header) >> shift; |
109 intptr_t offset = header + ((intptr_t)index << shift); |
109 intptr_t offset = header + ((intptr_t)index << shift); |
110 if (offset != element_offset || index != (jint)index) |
110 if (offset != element_offset || index != (jint)index || index < 0 || index >= length()) { |
111 return ciConstant(); |
111 return ciConstant(); |
|
112 } |
112 return element_value((jint) index); |
113 return element_value((jint) index); |
113 } |
114 } |
114 |
115 |
115 // ------------------------------------------------------------------ |
116 // ------------------------------------------------------------------ |
116 // ciArray::print_impl |
117 // ciArray::print_impl |