Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJb Evain <jbevain@gmail.com>2011-10-27 16:53:07 +0400
committerJb Evain <jbevain@gmail.com>2011-10-27 16:53:07 +0400
commit8771de6415d3fa5e34b12fd90519a5405c02e8b2 (patch)
tree0a1707ab3fc77c49d3f5f6f51628089ccffb1d19 /Mono.Cecil.Metadata/BlobHeap.cs
parentecdd7454b53a4d6b57c9eb2a500b91025a63b401 (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.cs12
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];