/// <summary> /// Fills length bytes memory with data. /// </summary> /// <param name="data">The byte to fill teh data.</param> /// <param name="length">The amount of bytes to fill.</param> public unsafe void Fill(byte data, int length) { if (length > size) { writer.flush(this, length > 1024 ? length : 1024); next.Fill(data, length); return; } size -= length; if (length > 80) { ulong oData = ((ulong)data << 56) | ((ulong)data << 48) | ((ulong)data << 40) | ((ulong)data << 32) | ((ulong)data << 24) | ((ulong)data << 16) | ((ulong)data << 8) | (ulong)data; while (length > 7) { fixed(byte *bData = this.data) * (ulong *)(bData + position) = oData; length -= 8; position += 8; } } while (length-- > 0) { this.data[position++] = data; } }
/// <summary> /// Fills length bytes memory with data. /// </summary> /// <param name="data">The byte to fill teh data.</param> /// <param name="length">The amount of bytes to fill.</param> public void Fill(byte data, int length) { currentSegment.Fill(data, length); }