< 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,111 **** --- 102,116 ---- 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,343 **** 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); 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); --- 338,348 ---- 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(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 >