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>2017-06-08 02:08:08 +0300
committerGitHub <noreply@github.com>2017-06-08 02:08:08 +0300
commit12d938dc62f4982078afe75c1227f7cae4f97262 (patch)
tree2cbaf42b612d0ac50f02672c1b70ff2087a46688
parentb1ab5273d60761150f09aa38a9e860183dbbb656 (diff)
parent20d226adc2733cccaf051f2ba59024966e17fab1 (diff)
Merge pull request #414 from jbevain/empty-root-namespace
Do not crash on empty import symbol
-rw-r--r--symbols/pdb/Mono.Cecil.Pdb/NativePdbReader.cs3
-rw-r--r--symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs7
-rw-r--r--symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.dllbin0 -> 7168 bytes
-rw-r--r--symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.pdbbin0 -> 19968 bytes
4 files changed, 10 insertions, 0 deletions
diff --git a/symbols/pdb/Mono.Cecil.Pdb/NativePdbReader.cs b/symbols/pdb/Mono.Cecil.Pdb/NativePdbReader.cs
index d4b45ed..b07191d 100644
--- a/symbols/pdb/Mono.Cecil.Pdb/NativePdbReader.cs
+++ b/symbols/pdb/Mono.Cecil.Pdb/NativePdbReader.cs
@@ -264,6 +264,9 @@ namespace Mono.Cecil.Pdb {
var import = new ImportDebugInformation ();
foreach (var used_namespace in scope.usedNamespaces) {
+ if (string.IsNullOrEmpty (used_namespace))
+ continue;
+
ImportTarget target = null;
var value = used_namespace.Substring (1);
switch (used_namespace [0]) {
diff --git a/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs b/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs
index 10b5639..054f1f8 100644
--- a/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs
+++ b/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs
@@ -154,6 +154,13 @@ namespace Mono.Cecil.Tests {
}
[Test]
+ public void EmptyRootNamespace ()
+ {
+ TestModule ("EmptyRootNamespace.dll", module => {
+ }, readOnly: Platform.OnMono, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider));
+ }
+
+ [Test]
public void LocalVariables ()
{
TestModule ("ComplexPdb.dll", module => {
diff --git a/symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.dll b/symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.dll
new file mode 100644
index 0000000..7992af6
--- /dev/null
+++ b/symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.dll
Binary files differ
diff --git a/symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.pdb b/symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.pdb
new file mode 100644
index 0000000..9550ece
--- /dev/null
+++ b/symbols/pdb/Test/Resources/assemblies/EmptyRootNamespace.pdb
Binary files differ