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-10-31 02:02:59 +0300
committerJb Evain <jb@evain.net>2017-10-31 02:02:59 +0300
commite43e9daf52e966b60454cac99feb422f3980c88f (patch)
tree1e894b9ecde82ec08a4bc611208b6df823a1d6c2
parentcc45ea0ae670a278dc5de19bed093a1a76332671 (diff)
Fix setting of known value types
-rw-r--r--Mono.Cecil/AssemblyReader.cs6
-rw-r--r--Mono.Cecil/TypeSystem.cs8
2 files changed, 10 insertions, 4 deletions
diff --git a/Mono.Cecil/AssemblyReader.cs b/Mono.Cecil/AssemblyReader.cs
index 8bc4ef2..a3284e2 100644
--- a/Mono.Cecil/AssemblyReader.cs
+++ b/Mono.Cecil/AssemblyReader.cs
@@ -3348,7 +3348,7 @@ namespace Mono.Cecil {
switch (etype) {
case ElementType.ValueType: {
var value_type = GetTypeDefOrRef (ReadTypeTokenSignature ());
- value_type.IsValueType = true;
+ value_type.KnownValueType ();
return value_type;
}
case ElementType.Class:
@@ -3388,8 +3388,8 @@ namespace Mono.Cecil {
ReadGenericInstanceSignature (element_type, generic_instance);
if (is_value_type) {
- generic_instance.IsValueType = true;
- element_type.GetElementType ().IsValueType = true;
+ generic_instance.KnownValueType ();
+ element_type.GetElementType ().KnownValueType ();
}
return generic_instance;
diff --git a/Mono.Cecil/TypeSystem.cs b/Mono.Cecil/TypeSystem.cs
index 3b5202c..e16ec6f 100644
--- a/Mono.Cecil/TypeSystem.cs
+++ b/Mono.Cecil/TypeSystem.cs
@@ -184,7 +184,7 @@ namespace Mono.Cecil {
return typeRef;
var type = LookupType ("System", name);
type.etype = element_type;
- type.IsValueType = true;
+ type.KnownValueType ();
return typeRef = type;
}
}
@@ -313,6 +313,12 @@ namespace Mono.Cecil {
return true;
}
+ public static void KnownValueType (this TypeReference type)
+ {
+ if (!type.IsDefinition)
+ type.IsValueType = true;
+ }
+
static bool IsCoreLibrary (AssemblyNameReference reference)
{
var name = reference.Name;