From 4da44e09cb2a32f69b4a6b47221117b78e4618dc Mon Sep 17 00:00:00 2001 From: Andrey Sukharev Date: Mon, 5 Dec 2022 16:47:39 +0300 Subject: Make structs readonly when applicable (#4002) * Make all structs readonly when applicable. It should reduce amount of needless defensive copies * Make structs with trivial boilerplate equality code record structs * Remove unnecessary readonly modifiers from TextureCreateInfo * Make BitMap structs readonly too --- ARMeilleure/Translation/Cache/CacheEntry.cs | 2 +- ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs | 2 +- ARMeilleure/Translation/CompilerContext.cs | 2 +- ARMeilleure/Translation/RegisterUsage.cs | 2 +- ARMeilleure/Translation/Translator.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'ARMeilleure/Translation') diff --git a/ARMeilleure/Translation/Cache/CacheEntry.cs b/ARMeilleure/Translation/Cache/CacheEntry.cs index fce984c3..dc5503b1 100644 --- a/ARMeilleure/Translation/Cache/CacheEntry.cs +++ b/ARMeilleure/Translation/Cache/CacheEntry.cs @@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis; namespace ARMeilleure.Translation.Cache { - struct CacheEntry : IComparable + readonly struct CacheEntry : IComparable { public int Offset { get; } public int Size { get; } diff --git a/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs b/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs index 3111e886..4c22de40 100644 --- a/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs +++ b/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs @@ -6,7 +6,7 @@ namespace ARMeilleure.Translation.Cache { class CacheMemoryAllocator { - private struct MemoryBlock : IComparable + private readonly struct MemoryBlock : IComparable { public int Offset { get; } public int Size { get; } diff --git a/ARMeilleure/Translation/CompilerContext.cs b/ARMeilleure/Translation/CompilerContext.cs index cfe5ad1e..510dec58 100644 --- a/ARMeilleure/Translation/CompilerContext.cs +++ b/ARMeilleure/Translation/CompilerContext.cs @@ -2,7 +2,7 @@ using ARMeilleure.IntermediateRepresentation; namespace ARMeilleure.Translation { - struct CompilerContext + readonly struct CompilerContext { public ControlFlowGraph Cfg { get; } diff --git a/ARMeilleure/Translation/RegisterUsage.cs b/ARMeilleure/Translation/RegisterUsage.cs index 775fa3ab..3ec0a7b4 100644 --- a/ARMeilleure/Translation/RegisterUsage.cs +++ b/ARMeilleure/Translation/RegisterUsage.cs @@ -14,7 +14,7 @@ namespace ARMeilleure.Translation private const int RegsCount = 32; private const int RegsMask = RegsCount - 1; - private struct RegisterMask : IEquatable + private readonly struct RegisterMask : IEquatable { public long IntMask => Mask.GetElement(0); public long VecMask => Mask.GetElement(1); diff --git a/ARMeilleure/Translation/Translator.cs b/ARMeilleure/Translation/Translator.cs index c50b1c3d..2edbe401 100644 --- a/ARMeilleure/Translation/Translator.cs +++ b/ARMeilleure/Translation/Translator.cs @@ -293,7 +293,7 @@ namespace ARMeilleure.Translation } } - private struct Range + private readonly struct Range { public ulong Start { get; } public ulong End { get; } -- cgit v1.2.3