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>2017-03-29 02:27:15 +0300
committerJb Evain <jb@evain.net>2017-03-29 02:27:53 +0300
commitbbe5501fa1a11f96196621fa8f51713b8e5698a7 (patch)
treeb9f38d2093f4254cc5ed683a812641ef1295f932 /Mono.Cecil.PE
parent1530a21d652992e9adb749d207a4f4fd44ad8024 (diff)
Fix reading/writing the size of table indexes in external pdbs
Diffstat (limited to 'Mono.Cecil.PE')
-rw-r--r--Mono.Cecil.PE/ImageReader.cs15
1 files changed, 12 insertions, 3 deletions
diff --git a/Mono.Cecil.PE/ImageReader.cs b/Mono.Cecil.PE/ImageReader.cs
index 4ef25e1..f36d2e5 100644
--- a/Mono.Cecil.PE/ImageReader.cs
+++ b/Mono.Cecil.PE/ImageReader.cs
@@ -310,11 +310,11 @@ namespace Mono.Cecil.PE {
for (int i = 0; i < streams; i++)
ReadMetadataStream (section);
- if (image.TableHeap != null)
- ReadTableHeap ();
-
if (image.PdbHeap != null)
ReadPdbHeap ();
+
+ if (image.TableHeap != null)
+ ReadTableHeap ();
}
void ReadDebugHeader ()
@@ -426,6 +426,15 @@ namespace Mono.Cecil.PE {
// Sorted 8
heap.Sorted = ReadInt64 ();
+ if (image.PdbHeap != null) {
+ for (int i = 0; i < Mixin.TableCount; i++) {
+ if (!image.PdbHeap.HasTable ((Table) i))
+ continue;
+
+ heap.Tables [i].Length = image.PdbHeap.TypeSystemTableRows [i];
+ }
+ }
+
for (int i = 0; i < Mixin.TableCount; i++) {
if (!heap.HasTable ((Table) i))
continue;