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:
-rw-r--r--Mono.Cecil/AssemblyReader.cs2
-rw-r--r--Test/Mono.Cecil.Tests/ImageReadTests.cs14
-rw-r--r--Test/Resources/assemblies/LocallyScopedConstantArray.dllbin0 -> 4096 bytes
-rw-r--r--Test/Resources/assemblies/LocallyScopedConstantArray.pdbbin0 -> 700 bytes
4 files changed, 15 insertions, 1 deletions
diff --git a/Mono.Cecil/AssemblyReader.cs b/Mono.Cecil/AssemblyReader.cs
index b648463..224d8a8 100644
--- a/Mono.Cecil/AssemblyReader.cs
+++ b/Mono.Cecil/AssemblyReader.cs
@@ -3017,7 +3017,7 @@ namespace Mono.Cecil {
value = new decimal (signature.ReadInt32 (), signature.ReadInt32 (), signature.ReadInt32 (), (b & 0x80) != 0, (byte) (b & 0x7f));
} else if (type.IsTypeOf ("System", "DateTime")) {
value = new DateTime (signature.ReadInt64());
- } else if (type.etype == ElementType.Object || type.etype == ElementType.None || type.etype == ElementType.Class) {
+ } else if (type.etype == ElementType.Object || type.etype == ElementType.None || type.etype == ElementType.Class || type.etype == ElementType.Array) {
value = null;
} else
value = signature.ReadConstantSignature (type.etype);
diff --git a/Test/Mono.Cecil.Tests/ImageReadTests.cs b/Test/Mono.Cecil.Tests/ImageReadTests.cs
index fa5562e..de7a2cc 100644
--- a/Test/Mono.Cecil.Tests/ImageReadTests.cs
+++ b/Test/Mono.Cecil.Tests/ImageReadTests.cs
@@ -208,6 +208,20 @@ namespace Mono.Cecil.Tests {
}
[Test]
+ public void LocallyScopedConstantArray ()
+ {
+ TestModule ("LocallyScopedConstantArray.dll", module => {
+ Assert.IsTrue (module.HasDebugHeader);
+ var method = module.Types
+ .Single (x => x.Name == "TestClass")
+ .Methods
+ .Single (x => x.Name == "TestMethod");
+ var debugInformation = method.DebugInformation;
+ Assert.IsNull (debugInformation.Scope.Constants.Single ().Value);
+ }, symbolReaderProvider: typeof (PortablePdbReaderProvider), symbolWriterProvider: typeof (PortablePdbWriterProvider));
+ }
+
+ [Test]
public void ExternalPdbDeterministicAssembly ()
{
TestModule ("ExternalPdbDeterministic.dll", module => {
diff --git a/Test/Resources/assemblies/LocallyScopedConstantArray.dll b/Test/Resources/assemblies/LocallyScopedConstantArray.dll
new file mode 100644
index 0000000..ae5eaf4
--- /dev/null
+++ b/Test/Resources/assemblies/LocallyScopedConstantArray.dll
Binary files differ
diff --git a/Test/Resources/assemblies/LocallyScopedConstantArray.pdb b/Test/Resources/assemblies/LocallyScopedConstantArray.pdb
new file mode 100644
index 0000000..eea50b9
--- /dev/null
+++ b/Test/Resources/assemblies/LocallyScopedConstantArray.pdb
Binary files differ