< prev index next >

src/hotspot/share/oops/accessBackend.hpp

Print this page
rev 49217 : 8198445: Access API for primitive/native arraycopy
Reviewed-by: pliden, eosterlund, dholmes

@@ -102,10 +102,15 @@
     typedef bool (*arraycopy_func_t)(arrayOop src_obj, arrayOop dst_obj, T* src, T* dst, size_t length);
     typedef void (*clone_func_t)(oop src, oop dst, size_t size);
     typedef oop (*resolve_func_t)(oop obj);
   };
 
+  template <DecoratorSet decorators>
+  struct AccessFunctionTypes<decorators, void> {
+    typedef bool (*arraycopy_func_t)(arrayOop src_obj, arrayOop dst_obj, void* src, void* dst, size_t length);
+  };
+
   template <DecoratorSet decorators, typename T, BarrierType barrier> struct AccessFunction {};
 
 #define ACCESS_GENERATE_ACCESS_FUNCTION(bt, func)                   \
   template <DecoratorSet decorators, typename T>                    \
   struct AccessFunction<decorators, T, bt>: AllStatic{              \

@@ -333,11 +338,11 @@
   static inline T atomic_xchg(T new_value, void* addr) {
     return atomic_xchg_maybe_locked<decorators>(new_value, addr);
   }
 
   template <typename T>
-  static bool arraycopy(T* src, T* dst, size_t length);
+  static bool arraycopy(arrayOop src_obj, arrayOop dst_obj, T* src, T* dst, size_t length);
 
   template <typename T>
   static void oop_store(void* addr, T value);
   template <typename T>
   static void oop_store_at(oop base, ptrdiff_t offset, T value);
< prev index next >