@Override public void putByte(long l, byte b) { checkBounds(l, 1); data[(int)(offset+l)] = b; }
@Override public byte getByte(long l) { checkBounds(l, 1); return data[(int)(offset+l)]; }
@Override public void getBytes(long l, ByteBuffer dest) { final int length = dest.remaining(); checkBounds(l, length); dest.put(data, (int)(offset+l), length); }
@Override public void putBytes(long l, ByteBuffer source) { final int length = source.remaining(); checkBounds(l, length); source.get(data, (int) (offset+l), length); }
@Override public void putFloat(long l, float v) { checkBounds(l, 4); dataAccess.putFloat(data, (int)(offset+l), v); }
@Override public void putShort(long l, short i) { checkBounds(l, 2); dataAccess.putShort(data, (int)(offset+l), i); }
@Override public double getDouble(long l) { checkBounds(l, 8); return dataAccess.getDouble(data, (int)(offset+l)); }
@Override public void getBytes(long l, byte[] bytes, int start, int length) { checkBounds(l, length); checkArrayBounds(bytes, start, length); System.arraycopy(data, (int)(offset+l), bytes, start, length); }
@Override public char getChar(long l) { checkBounds(l, 2); return dataAccess.getChar(data, (int)(offset+l)); }
@Override public float getFloat(long l) { checkBounds(l, 4); return dataAccess.getFloat(data, (int)(offset+l)); }
@Override public void putDouble(long l, double v) { checkBounds(l, 8); dataAccess.putDouble(data, (int)(offset+l), v); }
@Override public int getInt(long l) { checkBounds(l, 4); return dataAccess.getInt(data, (int)(offset+l)); }
@Override public void putLong(long l, long l1) { checkBounds(l, 8); dataAccess.putLong(data, (int)(offset+l), l1); }
@Override public void putBytes(long l, byte[] bytes, int start, int length) { checkBounds(l, length); checkArrayBounds(bytes, start, length); System.arraycopy(bytes, start, data, (int)(offset+l), length); }
@Override public void putBytes(long l, Memory source, long start, long length) { checkBounds(l, length); source.getBytes(start, data, (int)(offset+l), (int)length); }
@Override public short getShort(long l) { checkBounds(l, 2); return dataAccess.getShort(data, (int)(offset+l)); }
@Override public void putChar(long l, char c) { checkBounds(l, 2); dataAccess.putChar(data, (int)(offset+l), c); }
@Override public void putInt(long l, int i) { checkBounds(l, 4); dataAccess.putInt(data, (int)(offset+l), i); }
@Override public long getLong(long l) { checkBounds(l, 8); return dataAccess.getLong(data, (int)(offset+l)); }
@Override public void getBytes(long l, Memory dest, long start, long length) { checkBounds(l, length); dest.putBytes(start, data, (int)(offset+l), (int)length); }