From 9d0b070dfdba30a5ab7f9710d9a503bbb1b0c71a Mon Sep 17 00:00:00 2001 From: gdkchan Date: Wed, 17 Apr 2019 20:55:24 -0300 Subject: [PATCH] Implement IEquatable on the Register struct --- .../IntermediateRepresentation/RegisterMask.cs | 10 +++++----- ChocolArm64/State/Register.cs | 11 +++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChocolArm64/IntermediateRepresentation/RegisterMask.cs b/ChocolArm64/IntermediateRepresentation/RegisterMask.cs index 6f6944bdfd..aea6ab3617 100644 --- a/ChocolArm64/IntermediateRepresentation/RegisterMask.cs +++ b/ChocolArm64/IntermediateRepresentation/RegisterMask.cs @@ -43,14 +43,14 @@ namespace ChocolArm64.IntermediateRepresentation return obj is RegisterMask regMask && Equals(regMask); } - public override int GetHashCode() - { - return HashCode.Combine(IntMask, VecMask); - } - public bool Equals(RegisterMask other) { return IntMask == other.IntMask && VecMask == other.VecMask; } + + public override int GetHashCode() + { + return HashCode.Combine(IntMask, VecMask); + } } } diff --git a/ChocolArm64/State/Register.cs b/ChocolArm64/State/Register.cs index 12c3f5c34c..a7a2ead0db 100644 --- a/ChocolArm64/State/Register.cs +++ b/ChocolArm64/State/Register.cs @@ -3,7 +3,7 @@ using System.Reflection; namespace ChocolArm64.State { - struct Register + struct Register : IEquatable { public int Index; @@ -22,9 +22,12 @@ namespace ChocolArm64.State public override bool Equals(object obj) { - return obj is Register reg && - reg.Index == Index && - reg.Type == Type; + return obj is Register reg && Equals(reg); + } + + public bool Equals(Register other) + { + return Index == other.Index && Type == other.Type; } public FieldInfo GetField()