Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
 /// <summary>
 /// </summary>
 /// <param name="writer">
 /// </param>
 /// <param name="bytes">
 /// </param>
 internal void Write(PdbWriter writer, byte[] bytes)
 {
     this.Write(writer, bytes, bytes.Length);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// </summary>
 /// <param name="writer">
 /// </param>
 /// <param name="bytes">
 /// </param>
 internal void Write(PdbWriter writer, byte[] bytes)
 {
     this.Write(writer, bytes, bytes.Length);
 }