src/hotspot/share/oops/typeArrayKlass.cpp
changeset 50389 7e8c0409a747
parent 50304 d5331b94f821
child 50601 3fbae7b9ddb5
equal deleted inserted replaced
50388:55fac6146d31 50389:7e8c0409a747
   173   if (length == 0)
   173   if (length == 0)
   174     return;
   174     return;
   175 
   175 
   176   // This is an attempt to make the copy_array fast.
   176   // This is an attempt to make the copy_array fast.
   177   int l2es = log2_element_size();
   177   int l2es = log2_element_size();
   178   int ihs = array_header_in_bytes() / wordSize;
   178   size_t src_offset = arrayOopDesc::base_offset_in_bytes(element_type()) + ((size_t)src_pos << l2es);
   179   void* src = (char*) (s->base(element_type())) + ((size_t)src_pos << l2es);
   179   size_t dst_offset = arrayOopDesc::base_offset_in_bytes(element_type()) + ((size_t)dst_pos << l2es);
   180   void* dst = (char*) (d->base(element_type())) + ((size_t)dst_pos << l2es);
   180   ArrayAccess<ARRAYCOPY_ATOMIC>::arraycopy<void>(s, src_offset, d, dst_offset, (size_t)length << l2es);
   181   HeapAccess<ARRAYCOPY_ATOMIC>::arraycopy(s, d, src, dst, (size_t)length << l2es);
       
   182 }
   181 }
   183 
   182 
   184 // create a klass of array holding typeArrays
   183 // create a klass of array holding typeArrays
   185 Klass* TypeArrayKlass::array_klass_impl(bool or_null, int n, TRAPS) {
   184 Klass* TypeArrayKlass::array_klass_impl(bool or_null, int n, TRAPS) {
   186   int dim = dimension();
   185   int dim = dimension();