/// <summary> /// </summary> /// <param name="writer"> /// </param> /// <param name="bytes"> /// </param> /// <param name="data"> /// </param> internal void Write(PdbWriter writer, byte[] bytes, int data) { if (bytes == null || data == 0) { return; } var left = data; var used = 0; var rema = this.contentSize % writer.pageSize; if (rema != 0) { var todo = writer.pageSize - rema; if (todo > left) { todo = left; } var lastPage = this.pages[this.pages.Length - 1]; writer.Seek(lastPage, rema); writer.Write(bytes, used, todo); used += todo; left -= todo; } if (left > 0) { var count = (left + writer.pageSize - 1) / writer.pageSize; var page0 = writer.AllocatePages(count); writer.Seek(page0, 0); writer.Write(bytes, used, left); this.AddPages(page0, count); } this.contentSize += data; }
/// <summary> /// </summary> /// <param name="writer"> /// </param> /// <param name="bytes"> /// </param> internal void Write(PdbWriter writer, byte[] bytes) { this.Write(writer, bytes, bytes.Length); }