GetHashCode should not reference mutable fields (#5331)
This commit is contained in:
parent
649d372f7d
commit
58907e2c29
7 changed files with 9 additions and 9 deletions
|
@ -13,8 +13,8 @@ namespace ARMeilleure.State
|
||||||
// _e0 & _e1 could be marked as readonly, however they are not readonly because we modify them through the Unsafe
|
// _e0 & _e1 could be marked as readonly, however they are not readonly because we modify them through the Unsafe
|
||||||
// APIs. This also means that one should be careful when changing the layout of this struct.
|
// APIs. This also means that one should be careful when changing the layout of this struct.
|
||||||
|
|
||||||
private ulong _e0;
|
private readonly ulong _e0;
|
||||||
private ulong _e1;
|
private readonly ulong _e1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a new <see cref="V128"/> with all bits set to zero.
|
/// Gets a new <see cref="V128"/> with all bits set to zero.
|
||||||
|
|
|
@ -6,7 +6,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii.Types
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x10)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x10)]
|
||||||
struct CreateId : IEquatable<CreateId>
|
struct CreateId : IEquatable<CreateId>
|
||||||
{
|
{
|
||||||
public UInt128 Raw;
|
public readonly UInt128 Raw;
|
||||||
|
|
||||||
public bool IsNull => Raw == UInt128.Zero;
|
public bool IsNull => Raw == UInt128.Zero;
|
||||||
public bool IsValid => !IsNull && ((Raw >> 64) & 0xC0) == 0x80;
|
public bool IsValid => !IsNull && ((Raw >> 64) & 0xC0) == 0x80;
|
||||||
|
|
|
@ -4,8 +4,8 @@ namespace Ryujinx.Tests.Unicorn
|
||||||
{
|
{
|
||||||
public struct SimdValue : IEquatable<SimdValue>
|
public struct SimdValue : IEquatable<SimdValue>
|
||||||
{
|
{
|
||||||
private ulong _e0;
|
private readonly ulong _e0;
|
||||||
private ulong _e1;
|
private readonly ulong _e1;
|
||||||
|
|
||||||
public SimdValue(ulong e0, ulong e1)
|
public SimdValue(ulong e0, ulong e1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace Spv.Generator
|
||||||
{
|
{
|
||||||
internal struct ConstantKey : IEquatable<ConstantKey>
|
internal struct ConstantKey : IEquatable<ConstantKey>
|
||||||
{
|
{
|
||||||
private Instruction _constant;
|
private readonly Instruction _constant;
|
||||||
|
|
||||||
public ConstantKey(Instruction constant)
|
public ConstantKey(Instruction constant)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace Spv.Generator
|
||||||
{
|
{
|
||||||
internal class DeterministicStringKey : IEquatable<DeterministicStringKey>
|
internal class DeterministicStringKey : IEquatable<DeterministicStringKey>
|
||||||
{
|
{
|
||||||
private string _value;
|
private readonly string _value;
|
||||||
|
|
||||||
public DeterministicStringKey(string value)
|
public DeterministicStringKey(string value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace Spv.Generator
|
||||||
{
|
{
|
||||||
public OperandType Type => OperandType.String;
|
public OperandType Type => OperandType.String;
|
||||||
|
|
||||||
private string _value;
|
private readonly string _value;
|
||||||
|
|
||||||
public LiteralString(string value)
|
public LiteralString(string value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace Spv.Generator
|
||||||
{
|
{
|
||||||
internal struct TypeDeclarationKey : IEquatable<TypeDeclarationKey>
|
internal struct TypeDeclarationKey : IEquatable<TypeDeclarationKey>
|
||||||
{
|
{
|
||||||
private Instruction _typeDeclaration;
|
private readonly Instruction _typeDeclaration;
|
||||||
|
|
||||||
public TypeDeclarationKey(Instruction typeDeclaration)
|
public TypeDeclarationKey(Instruction typeDeclaration)
|
||||||
{
|
{
|
||||||
|
|
Reference in a new issue