public override void Clear() { if (IsByteUniform(_defaultValue)) { UnsafeUtil.setMemory(address, length << Shift, ( sbyte )_defaultValue); } else { for (long i = 0, adr = address; i < length; i++, adr += itemSize) { UnsafeUtil.putLong(adr, _defaultValue); } } }
public override void Clear() { if (IsByteUniform(_defaultValue)) { UnsafeUtil.setMemory(Address, LengthConflict * itemSize, _defaultValue[0]); } else { long intermediary = UnsafeUtil.allocateMemory(itemSize, AllocationTracker); for (int i = 0; i < _defaultValue.Length; i++) { UnsafeUtil.putByte(intermediary + i, _defaultValue[i]); } for (long i = 0, adr = Address; i < LengthConflict; i++, adr += itemSize) { UnsafeUtil.copyMemory(intermediary, adr, itemSize); } UnsafeUtil.free(intermediary, itemSize, AllocationTracker); } }