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:
authorMarek Safar <marek.safar@gmail.com>2017-04-04 12:48:01 +0300
committerMarek Safar <marek.safar@gmail.com>2017-04-04 12:48:01 +0300
commit9e3c67108213fe0ed77d9b03052a51b8569f9016 (patch)
tree4628b4d60df214f871b60da324766b9413ef5bd7
parent1922b99c7a041c364c58ddff9121271e57862b76 (diff)
Revert "Clear out symbols that we can't process"
This reverts commit cd85c4bfcb8e4c9addeab5a1912b46f9585154b5.
-rw-r--r--Mono.Cecil/ModuleDefinition.cs24
1 files changed, 18 insertions, 6 deletions
diff --git a/Mono.Cecil/ModuleDefinition.cs b/Mono.Cecil/ModuleDefinition.cs
index 8a233ba..9f20b9f 100644
--- a/Mono.Cecil/ModuleDefinition.cs
+++ b/Mono.Cecil/ModuleDefinition.cs
@@ -1003,9 +1003,24 @@ namespace Mono.Cecil {
get { return Image != null && !Image.Debug.IsZero; }
}
- public ImageDebugDirectory GetDebugHeader ()
+ public ImageDebugDirectory GetDebugHeader (out byte [] header)
{
- return Image.DebugHeader ?? new ImageDebugHeader ();
+ if (!HasDebugHeader)
+ throw new InvalidOperationException ();
+
+ return Image.GetDebugHeader (out header);
+ }
+
+ void ProcessDebugHeader ()
+ {
+ if (!HasDebugHeader)
+ return;
+
+ byte [] header;
+ var directory = GetDebugHeader (out header);
+
+ if (!symbol_reader.ProcessDebugHeader (directory, header))
+ throw new InvalidOperationException ();
}
#if !READ_ONLY
@@ -1085,10 +1100,7 @@ namespace Mono.Cecil {
symbol_reader = reader;
- if (!symbol_reader.ProcessDebugHeader (GetDebugHeader ())) {
- symbol_reader = null;
- throw new InvalidOperationException ();
- }
+ ProcessDebugHeader ();
if (HasImage && ReadingMode == ReadingMode.Immediate) {
var immediate_reader = new ImmediateModuleReader (Image);