diff options
author | Jb Evain <jbevain@gmail.com> | 2011-10-27 16:53:07 +0400 |
---|---|---|
committer | Jb Evain <jbevain@gmail.com> | 2011-10-27 16:53:07 +0400 |
commit | 8771de6415d3fa5e34b12fd90519a5405c02e8b2 (patch) | |
tree | 0a1707ab3fc77c49d3f5f6f51628089ccffb1d19 /Mono.Cecil.Metadata/BlobHeap.cs | |
parent | ecdd7454b53a4d6b57c9eb2a500b91025a63b401 (diff) |
First pass at a branch with reduced memory usage; Keeps an open handle on the file, dispose your modules
Diffstat (limited to 'Mono.Cecil.Metadata/BlobHeap.cs')
-rw-r--r-- | Mono.Cecil.Metadata/BlobHeap.cs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/Mono.Cecil.Metadata/BlobHeap.cs b/Mono.Cecil.Metadata/BlobHeap.cs index e7e2928..2488569 100644 --- a/Mono.Cecil.Metadata/BlobHeap.cs +++ b/Mono.Cecil.Metadata/BlobHeap.cs @@ -28,25 +28,21 @@ using System; -using Mono.Cecil.PE; - namespace Mono.Cecil.Metadata { sealed class BlobHeap : Heap { - public BlobHeap (Section section, uint start, uint size) - : base (section, start, size) + public BlobHeap (byte [] data) + : base (data) { } public byte [] Read (uint index) { - if (index == 0 || index > Size - 1) + if (index == 0 || index > this.data.Length - 1) return Empty<byte>.Array; - var data = Section.Data; - - int position = (int) (index + Offset); + int position = (int) index; int length = (int) data.ReadCompressedUInt32 (ref position); var buffer = new byte [length]; |