diff options
author | Francois Valdy <francois.valdy@gmail.com> | 2015-05-31 13:17:39 +0300 |
---|---|---|
committer | Francois Valdy <francois.valdy@gmail.com> | 2015-05-31 13:31:08 +0300 |
commit | 8ec7fc8e16c25869ba430ac1c2218adc7201d264 (patch) | |
tree | 6f8e52e3cb809ab3ffda9f83097598a6f651c6d4 /Mono.Cecil.Metadata | |
parent | 83af39c4e3ba7a8c36f94d177654f7d97561239c (diff) |
Make MetadataToken IEquatable
- when used as key in a dict, implementing IEquatable will avoid
object boxing when comparing keys.
- big perf increase when loading assemblies.
Diffstat (limited to 'Mono.Cecil.Metadata')
-rw-r--r-- | Mono.Cecil.Metadata/MetadataToken.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Mono.Cecil.Metadata/MetadataToken.cs b/Mono.Cecil.Metadata/MetadataToken.cs index 8cc10ea..a8b712e 100644 --- a/Mono.Cecil.Metadata/MetadataToken.cs +++ b/Mono.Cecil.Metadata/MetadataToken.cs @@ -8,9 +8,11 @@ // Licensed under the MIT/X11 license. // +using System; + namespace Mono.Cecil { - public struct MetadataToken { + public struct MetadataToken : IEquatable<MetadataToken> { readonly uint token; @@ -59,6 +61,11 @@ namespace Mono.Cecil { return (int) token; } + public bool Equals (MetadataToken other) + { + return other.token == token; + } + public override bool Equals (object obj) { if (obj is MetadataToken) { |