Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikdasm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Frijters <jeroen@frijters.net>2013-09-20 15:35:15 +0400
committerJeroen Frijters <jeroen@frijters.net>2013-09-20 15:35:15 +0400
commitd87a33d82ae72daa61da54bb1dec2c62085fce0d (patch)
treee4b45e5e2aa5abde56671c2fc83dcc2d791e9200
parent1b5ca90f6e8ada7108cd76e998370e42d4e47cb5 (diff)
Bug fix. Handle CA attached to generic interface impl.
-rw-r--r--Disassembler.cs32
1 files changed, 15 insertions, 17 deletions
diff --git a/Disassembler.cs b/Disassembler.cs
index 56c9778..5ea4f6a 100644
--- a/Disassembler.cs
+++ b/Disassembler.cs
@@ -807,14 +807,7 @@ namespace Ildasm
if (type.BaseType != null)
{
lw.Write(" extends ");
- if (type.BaseType.__IsMissing || !type.BaseType.IsGenericType)
- {
- WriteTypeDefOrRef(lw, type.BaseType);
- }
- else
- {
- WriteSignatureType(lw, type.BaseType, TypeLocation.General);
- }
+ WriteInterfaceOrBaseType(lw, type.BaseType);
lw.WriteLine();
lw.GoToColumn(level);
}
@@ -831,14 +824,7 @@ namespace Ildasm
lw.GoToColumn(level + 18);
}
first = false;
- if (iface.__IsMissing || !iface.IsGenericType)
- {
- WriteTypeDefOrRef(lw, iface);
- }
- else
- {
- WriteSignatureType(lw, iface, TypeLocation.General);
- }
+ WriteInterfaceOrBaseType(lw, iface);
}
lw.WriteLine();
lw.GoToColumn(level);
@@ -865,7 +851,7 @@ namespace Ildasm
{
lw.GoToColumn(level + 2);
lw.Write(".interfaceimpl type ");
- WriteTypeDefOrRef(lw, iface);
+ WriteInterfaceOrBaseType(lw, iface);
lw.WriteLine();
WriteCustomAttributes(lw, level + 2, cas);
}
@@ -908,6 +894,18 @@ namespace Ildasm
lw.WriteLine();
}
+ void WriteInterfaceOrBaseType(LineWriter lw, Type type)
+ {
+ if (type.__IsMissing || !type.IsGenericType)
+ {
+ WriteTypeDefOrRef(lw, type);
+ }
+ else
+ {
+ WriteSignatureType(lw, type, TypeLocation.General);
+ }
+ }
+
void WriteGenericParameterCustomAttributes(LineWriter lw, int level, Type[] args)
{
foreach (var typeParam in args)