projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[corlib] Defer TypeInfo instantiation logic in DefinedTypes. Fixes #19082
[mono.git]
/
mcs
/
class
/
corlib
/
System.Reflection
/
CustomAttributeData.cs
diff --git
a/mcs/class/corlib/System.Reflection/CustomAttributeData.cs
b/mcs/class/corlib/System.Reflection/CustomAttributeData.cs
index ae9eee45fad76db1f412db322761496b4263fcbd..615bf7de8acf76df4ad102c95cd8f9ba1140755e 100644
(file)
--- a/
mcs/class/corlib/System.Reflection/CustomAttributeData.cs
+++ b/
mcs/class/corlib/System.Reflection/CustomAttributeData.cs
@@
-139,6
+139,12
@@
namespace System.Reflection {
return MonoCustomAttrs.GetCustomAttributesData (target);
}
return MonoCustomAttrs.GetCustomAttributesData (target);
}
+#if NET_4_5
+ public Type AttributeType {
+ get { return ctorInfo.DeclaringType; }
+ }
+#endif
+
public override string ToString ()
{
StringBuilder sb = new StringBuilder ();
public override string ToString ()
{
StringBuilder sb = new StringBuilder ();
@@
-197,13
+203,18
@@
namespace System.Reflection {
public override int GetHashCode ()
{
public override int GetHashCode ()
{
- int ret = ctorInfo
.GetHashCode () << 16
;
+ int ret = ctorInfo
== null ? 13 : (ctorInfo.GetHashCode () << 16)
;
// argument order-dependent
// argument order-dependent
- for (int i = 0; i < ctorArgs.Count; i++)
- ret += ret ^ 7 + ctorArgs [i].GetHashCode () << (i * 4);
+ if (ctorArgs != null) {
+ for (int i = 0; i < ctorArgs.Count; i++) {
+ ret += ret ^ 7 + ctorArgs [i].GetHashCode () << (i * 4);
+ }
+ }
// argument order-independent
// argument order-independent
- for (int i = 0; i < namedArgs.Count; i++)
- ret += (namedArgs [i].GetHashCode () << 5);
+ if (namedArgs != null) {
+ for (int i = 0; i < namedArgs.Count; i++)
+ ret += (namedArgs [i].GetHashCode () << 5);
+ }
return ret;
}
}
return ret;
}
}