Package com.aparapi.internal.util
Class UnsafeWrapper
java.lang.Object
com.aparapi.internal.util.UnsafeWrapper
A wrapper around sun.misc.Unsafe for handling atomic operations, copies from fields to arrays and vice versa.
We avoid using
sun.misc.Unsafe
directly using reflection, mostly just to avoid getting 'unsafe' compiler errors.
This might need to be changed if we start to see performance issues.- Author:
- gfrost
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
arrayBaseOffset
(Class<?> _arrayClass) static int
arrayIndexScale
(Class<?> _arrayClass) static int
atomicAdd
(int[] _arr, int _index, int _delta) static boolean
getBoolean
(Object _object, long _offset) static byte
static float
static int
static long
static Object
static long
objectFieldOffset
(Field _field) static void
putBoolean
(Object _object, long _offset, boolean _boolean) static void
static void
static void
static void
static void
-
Constructor Details
-
UnsafeWrapper
public UnsafeWrapper()
-
-
Method Details
-
atomicAdd
public static int atomicAdd(int[] _arr, int _index, int _delta) -
arrayBaseOffset
-
arrayIndexScale
-
getObject
-
getInt
-
getFloat
-
getByte
-
getBoolean
-
getLong
-
putBoolean
-
putFloat
-
putInt
-
putDouble
-
putByte
-
putLong
-
objectFieldOffset
-