Revert "Structural and Memory Safety Improvements, Analyzer Cleanup (ryubing/ryujinx!47)"

This reverts merge request !47
This commit is contained in:
GreemDev 2025-06-15 20:45:26 -05:00
parent faf9e3cdd7
commit 77a797f154
307 changed files with 1245 additions and 1016 deletions

View file

@ -147,9 +147,9 @@ namespace Ryujinx.Common.Collections
Queue<Node<TKey, TValue>> nodes = new();
if (Root != null)
if (this.Root != null)
{
nodes.Enqueue(Root);
nodes.Enqueue(this.Root);
}
while (nodes.TryDequeue(out Node<TKey, TValue> node))
@ -522,7 +522,7 @@ namespace Ryujinx.Common.Collections
public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
{
if (arrayIndex < 0 || array.Length - arrayIndex < Count)
if (arrayIndex < 0 || array.Length - arrayIndex < this.Count)
{
throw new ArgumentOutOfRangeException(nameof(arrayIndex));
}

View file

@ -36,6 +36,8 @@ namespace Ryujinx.Common.Configuration
};
}
public static float ToFloatY(this AspectRatio aspectRatio)
{
return aspectRatio switch

View file

@ -18,6 +18,8 @@ namespace Ryujinx.Common.Configuration
public DirtyHack Hack => hack;
public int Value => value;
public ulong Pack() => Raw.PackBitFields(PackedFormat);
public static EnabledDirtyHack Unpack(ulong packedHack)

View file

@ -10,7 +10,7 @@ using System.Runtime.Intrinsics.X86;
namespace Ryujinx.Common
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
[StructLayout(LayoutKind.Sequential)]
public struct Hash128(ulong low, ulong high) : IEquatable<Hash128>
{
public ulong Low = low;

View file

@ -219,34 +219,16 @@ namespace Ryujinx.Common.Logging
switch (logLevel)
{
#pragma warning disable IDE0055 // Disable formatting
case LogLevel.Debug:
Debug = enabled ? new Log(LogLevel.Debug) : new Log?();
break;
case LogLevel.Info:
Info = enabled ? new Log(LogLevel.Info) : new Log?();
break;
case LogLevel.Warning:
Warning = enabled ? new Log(LogLevel.Warning) : new Log?();
break;
case LogLevel.Error:
Error = enabled ? new Log(LogLevel.Error) : new Log?();
break;
case LogLevel.Guest:
Guest = enabled ? new Log(LogLevel.Guest) : new Log?();
break;
case LogLevel.AccessLog:
AccessLog = enabled ? new Log(LogLevel.AccessLog) : new Log?();
break;
case LogLevel.Stub:
Stub = enabled ? new Log(LogLevel.Stub) : new Log?();
break;
case LogLevel.Trace:
Trace = enabled ? new Log(LogLevel.Trace) : new Log?();
break;
case LogLevel.Notice:
break;
default:
throw new ArgumentException("Unknown Log Level", nameof(logLevel));
case LogLevel.Debug : Debug = enabled ? new Log(LogLevel.Debug) : new Log?(); break;
case LogLevel.Info : Info = enabled ? new Log(LogLevel.Info) : new Log?(); break;
case LogLevel.Warning : Warning = enabled ? new Log(LogLevel.Warning) : new Log?(); break;
case LogLevel.Error : Error = enabled ? new Log(LogLevel.Error) : new Log?(); break;
case LogLevel.Guest : Guest = enabled ? new Log(LogLevel.Guest) : new Log?(); break;
case LogLevel.AccessLog : AccessLog = enabled ? new Log(LogLevel.AccessLog) : new Log?(); break;
case LogLevel.Stub : Stub = enabled ? new Log(LogLevel.Stub) : new Log?(); break;
case LogLevel.Trace : Trace = enabled ? new Log(LogLevel.Trace) : new Log?(); break;
case LogLevel.Notice : break;
default: throw new ArgumentException("Unknown Log Level", nameof(logLevel));
#pragma warning restore IDE0055
}
}

View file

@ -2,9 +2,9 @@ using System;
using System.Diagnostics.Contracts;
using System.Runtime.InteropServices;
#pragma warning disable CS0169, IDE0051 // Remove unused private member
namespace Ryujinx.Common.Memory
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array1<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -15,7 +15,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array2<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -27,7 +26,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array3<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -39,7 +37,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array4<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -51,7 +48,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array5<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -63,7 +59,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array6<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -75,7 +70,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array7<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -87,7 +81,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array8<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -99,7 +92,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array9<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -111,7 +103,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array10<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -123,7 +114,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array11<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -135,7 +125,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array12<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -147,7 +136,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array13<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -159,7 +147,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array14<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -171,7 +158,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array15<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -183,7 +169,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array16<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -195,7 +180,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array17<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -207,7 +191,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array18<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -219,7 +202,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array19<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -231,7 +213,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array20<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -243,7 +224,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array21<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -255,7 +235,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array22<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -267,7 +246,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array23<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -279,7 +257,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array24<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -292,7 +269,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array25<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -305,7 +281,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array26<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -318,7 +293,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array27<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -331,7 +305,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array28<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -344,7 +317,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array29<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -357,7 +329,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array30<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -370,7 +341,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array31<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -383,7 +353,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array32<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -396,7 +365,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array33<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -409,7 +377,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array34<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -422,7 +389,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array35<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -435,7 +401,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array36<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -448,7 +413,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array37<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -461,7 +425,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array38<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -474,7 +437,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array39<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -487,7 +449,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array40<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -500,7 +461,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array41<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -513,7 +473,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array42<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -526,7 +485,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array43<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -539,7 +497,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array44<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -552,7 +509,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array45<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -565,7 +521,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array46<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -578,7 +533,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array47<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -591,7 +545,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array48<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -604,7 +557,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array49<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -617,7 +569,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array50<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -630,7 +581,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array51<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -643,7 +593,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array52<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -656,7 +605,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array53<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -669,7 +617,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array54<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -682,7 +629,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array55<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -695,7 +641,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array56<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -708,7 +653,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array57<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -721,7 +665,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array58<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -734,7 +677,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array59<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -747,7 +689,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array60<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -759,7 +700,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array61<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -771,7 +711,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array62<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -783,7 +722,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array63<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -795,7 +733,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array64<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -807,7 +744,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array65<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -819,7 +755,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array73<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -832,7 +767,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array96<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -845,7 +779,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array127<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -858,7 +791,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array128<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -871,7 +803,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array140<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -885,7 +816,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array256<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -898,7 +828,6 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Array384<T> : IArray<T> where T : unmanaged
{
T _e0;
@ -915,4 +844,4 @@ namespace Ryujinx.Common.Memory
public Span<T> AsSpan() => MemoryMarshal.CreateSpan(ref _e0, Length);
}
}
#pragma warning restore CS0169, IDE0051

View file

@ -94,7 +94,7 @@ namespace Ryujinx.Common.PreciseSleep
Bias = GetBias(0);
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
[StructLayout(LayoutKind.Sequential)]
private struct Timespec
{
public long tv_sec; // Seconds

View file

@ -1,5 +1,10 @@
using Ryujinx.Common.Utilities;
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Reflection;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace Ryujinx.Common
{
@ -32,4 +37,6 @@ namespace Ryujinx.Common
? $"https://git.ryujinx.app/ryubing/ryujinx/-/compare/Canary-{currentVersion}...Canary-{newVersion}"
: $"https://git.ryujinx.app/ryubing/ryujinx/-/releases/{newVersion}";
}
}

View file

@ -28,10 +28,12 @@ namespace Ryujinx.Common.SystemInterop
{
public int GdiplusVersion;
#pragma warning disable CS0649 // Field is never assigned to
public nint DebugEventCallback;
public int SuppressBackgroundThread;
public int SuppressExternalCodecs;
public int StartupParameters;
#pragma warning restore CS0649
public static StartupInputEx Default => new()
{

View file

@ -12,7 +12,7 @@ namespace Ryujinx.Common.SystemInterop
[SupportedOSPlatform("windows")]
public partial class WindowsMultimediaTimerResolution : IDisposable
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
[StructLayout(LayoutKind.Sequential)]
public struct TimeCaps
{
public uint wPeriodMin;

View file

@ -9,8 +9,8 @@ namespace Ryujinx.Common.Utilities
[StructLayout(LayoutKind.Sequential, Size = 16)]
public struct Buffer16
{
public ulong Low { get; set; }
public ulong High { get; set; }
[DebuggerBrowsable(DebuggerBrowsableState.Never)] private readonly ulong _dummy0;
[DebuggerBrowsable(DebuggerBrowsableState.Never)] private readonly ulong _dummy1;
public byte this[int i]
{

View file

@ -241,7 +241,7 @@ namespace Ryujinx.Common.Utilities
public IndentedStringBuilder Append(object value)
{
Append(value.ToString());
this.Append(value.ToString());
return this;
}
@ -271,7 +271,7 @@ namespace Ryujinx.Common.Utilities
{
_builder.Append(value);
AppendLine();
this.AppendLine();
return this;
}

View file

@ -32,6 +32,7 @@ namespace Ryujinx.Common.Utilities
CyclingEnabled = false;
}
public static float Speed { get; set; } = 1;
private static readonly Lock _lock = new();