public void WriteDoubleWord(long offset, uint value)
{
var localOffset = GetLocalOffset((uint)offset);
var segment = segments[GetSegmentNo((uint)offset)];
if(localOffset >= SegmentSize - 3) // cross segment write
{
var bytes = BitConverter.GetBytes(value);
WriteBytes(offset, bytes);
return;
}
Marshal.WriteInt32(segment + localOffset, unchecked((int)value));
}