< prev index next >

src/share/vm/oops/oop.inline.hpp

Print this page

        

@@ -230,27 +230,12 @@
     if (lh < Klass::_lh_neutral_value) {
       // Second most common case is arrays.  We have to fetch the
       // length of the array, shift (multiply) it appropriately,
       // up to wordSize, add the header, and align to object size.
       size_t size_in_bytes;
-#ifdef _M_IA64
-      // The Windows Itanium Aug 2002 SDK hoists this load above
-      // the check for s < 0.  An oop at the end of the heap will
-      // cause an access violation if this load is performed on a non
-      // array oop.  Making the reference volatile prohibits this.
-      // (%%% please explain by what magic the length is actually fetched!)
-      volatile int *array_length;
-      array_length = (volatile int *)( (intptr_t)this +
-                          arrayOopDesc::length_offset_in_bytes() );
-      assert(array_length > 0, "Integer arithmetic problem somewhere");
-      // Put into size_t to avoid overflow.
-      size_in_bytes = (size_t) array_length;
-      size_in_bytes = size_in_bytes << Klass::layout_helper_log2_element_size(lh);
-#else
       size_t array_length = (size_t) ((arrayOop)this)->length();
       size_in_bytes = array_length << Klass::layout_helper_log2_element_size(lh);
-#endif
       size_in_bytes += Klass::layout_helper_header_size(lh);
 
       // This code could be simplified, but by keeping array_header_in_bytes
       // in units of bytes and doing it this way we can round up just once,
       // skipping the intermediate round to HeapWordSize.  Cast the result
< prev index next >