public void SetUInt32(long index, EcmaValue value, DataViewEndianness isLittleEndian) { Guard.BufferNotDetached(this); uint uintValue = value.ToUInt32(); ThrowIfOutOfBound(index, sizeof(uint)); this.Buffer.SetValue(index + ByteOffset, CheckAndSwap(uintValue, isLittleEndian)); }
public void SetFloat64(long index, EcmaValue value, DataViewEndianness isLittleEndian) { Guard.BufferNotDetached(this); double doubleValue = value.ToDouble(); ThrowIfOutOfBound(index, sizeof(double)); this.Buffer.SetValue(index + ByteOffset, CheckAndSwap(doubleValue, isLittleEndian)); }
private static bool IsByteSwapRequired(DataViewEndianness endian) { switch (endian) { case DataViewEndianness.BigEndian: return(BitConverter.IsLittleEndian); case DataViewEndianness.LittleEndian: return(!BitConverter.IsLittleEndian); } return(false); }
public EcmaValue GetUInt16(long index, DataViewEndianness isLittleEndian) { Guard.BufferNotDetached(this); ThrowIfOutOfBound(index, sizeof(ushort)); return(CheckAndSwap(this.Buffer.GetUInt16(index + ByteOffset), isLittleEndian)); }
private static float CheckAndSwap(float v, DataViewEndianness isLittleEndian) { return(IsByteSwapRequired(isLittleEndian) ? Int32BitsToSingle(SwapBytes(SingleToInt32Bits(v))) : v); }
private static double CheckAndSwap(double v, DataViewEndianness isLittleEndian) { return(IsByteSwapRequired(isLittleEndian) ? BitConverter.Int64BitsToDouble(SwapBytes(BitConverter.DoubleToInt64Bits(v))) : v); }
private static uint CheckAndSwap(uint v, DataViewEndianness isLittleEndian) { return(IsByteSwapRequired(isLittleEndian) ? SwapBytes(v) : v); }