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 <jb@evain.net>2016-07-28 06:34:32 +0300
committerJb Evain <jb@evain.net>2016-07-28 06:34:32 +0300
commit078f175733cad280973b8dbab8696b452e3844aa (patch)
tree792254067c58182e498b4fb1f21a7d1d7b41a52a /Mono.Cecil.PE
parent1b5ce064bb1661312bf8ade3c2d736a9fe452db5 (diff)
Properly handle ownership of streams used by Cecil
Diffstat (limited to 'Mono.Cecil.PE')
-rw-r--r--Mono.Cecil.PE/Image.cs4
-rw-r--r--Mono.Cecil.PE/ImageReader.cs14
2 files changed, 9 insertions, 9 deletions
diff --git a/Mono.Cecil.PE/Image.cs b/Mono.Cecil.PE/Image.cs
index d0fd80d..c85b320 100644
--- a/Mono.Cecil.PE/Image.cs
+++ b/Mono.Cecil.PE/Image.cs
@@ -20,7 +20,7 @@ namespace Mono.Cecil.PE {
sealed class Image : IDisposable {
- public Stream Stream;
+ public Disposable<Stream> Stream;
public string FileName;
public ModuleKind Kind;
@@ -124,7 +124,7 @@ namespace Mono.Cecil.PE {
if (section == null)
return null;
- var reader = new BinaryStreamReader (Stream);
+ var reader = new BinaryStreamReader (Stream.value);
reader.MoveTo (ResolveVirtualAddressInSection (rva, section));
return reader;
}
diff --git a/Mono.Cecil.PE/ImageReader.cs b/Mono.Cecil.PE/ImageReader.cs
index b69cc75..fc6b4fc 100644
--- a/Mono.Cecil.PE/ImageReader.cs
+++ b/Mono.Cecil.PE/ImageReader.cs
@@ -26,8 +26,8 @@ namespace Mono.Cecil.PE {
uint table_heap_offset;
- public ImageReader (Stream stream, string file_name)
- : base (stream)
+ public ImageReader (Disposable<Stream> stream, string file_name)
+ : base (stream.value)
{
image = new Image ();
image.Stream = stream;
@@ -704,22 +704,22 @@ namespace Mono.Cecil.PE {
}
}
- public static Image ReadImage (Stream stream, string file_name)
+ public static Image ReadImage (Disposable<Stream> stream, string file_name)
{
try {
var reader = new ImageReader (stream, file_name);
reader.ReadImage ();
return reader.image;
} catch (EndOfStreamException e) {
- throw new BadImageFormatException (stream.GetFileName (), e);
+ throw new BadImageFormatException (stream.value.GetFileName (), e);
}
}
- public static Image ReadPortablePdb (Stream stream, string file_name)
+ public static Image ReadPortablePdb (Disposable<Stream> stream, string file_name)
{
try {
var reader = new ImageReader (stream, file_name);
- var length = (uint) stream.Length;
+ var length = (uint) stream.value.Length;
reader.image.Sections = new[] {
new Section {
@@ -734,7 +734,7 @@ namespace Mono.Cecil.PE {
reader.ReadMetadata ();
return reader.image;
} catch (EndOfStreamException e) {
- throw new BadImageFormatException (stream.GetFileName (), e);
+ throw new BadImageFormatException (stream.value.GetFileName (), e);
}
}
}