Class UnsafeWrapper

java.lang.Object
com.aparapi.internal.util.UnsafeWrapper

public class UnsafeWrapper
extends Object
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 Details

  • Method Details

    • atomicAdd

      public static int atomicAdd​(int[] _arr, int _index, int _delta)
    • arrayBaseOffset

      public static int arrayBaseOffset​(Class<?> _arrayClass)
    • arrayIndexScale

      public static int arrayIndexScale​(Class<?> _arrayClass)
    • getObject

      public static Object getObject​(Object _object, long _offset)
    • getInt

      public static int getInt​(Object _object, long _offset)
    • getFloat

      public static float getFloat​(Object _object, long _offset)
    • getByte

      public static byte getByte​(Object _object, long _offset)
    • getBoolean

      public static boolean getBoolean​(Object _object, long _offset)
    • getLong

      public static long getLong​(Object _object, long _offset)
    • putBoolean

      public static void putBoolean​(Object _object, long _offset, boolean _boolean)
    • putFloat

      public static void putFloat​(Object _object, long _offset, float _float)
    • putInt

      public static void putInt​(Object _object, long _offset, int _int)
    • putDouble

      public static void putDouble​(Object _object, long _offset, double _double)
    • putByte

      public static void putByte​(Object _object, long _offset, byte _byte)
    • putLong

      public static void putLong​(Object _object, long _offset, long _long)
    • objectFieldOffset

      public static long objectFieldOffset​(Field _field)