diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-06-08 23:54:50 -0300 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2018-06-08 23:54:50 -0300 |
| commit | 78223484394db924d02383310d8bace8a01fa152 (patch) | |
| tree | beffb68c47bac213e3a8d4c98ec1572fc5308c9b /ChocolArm64/Memory | |
| parent | 9136897d4a0aabed7e12f9756bc9a50e4bdbea72 (diff) | |
Small cleanup in AMemory and removed some unused usings
Diffstat (limited to 'ChocolArm64/Memory')
| -rw-r--r-- | ChocolArm64/Memory/AMemory.cs | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index 7af288a6..2adf5403 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -355,11 +355,18 @@ namespace ChocolArm64.Memory public byte[] ReadBytes(long Position, long Size) { + if ((uint)Size > int.MaxValue) + { + throw new ArgumentOutOfRangeException(nameof(Size)); + } + EnsureRangeIsValid(Position, Size, AMemoryPerm.Read); - byte[] Result = new byte[Size]; - Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Result, 0, (int)Size); - return Result; + byte[] Data = new byte[Size]; + + Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Data, 0, (int)Size); + + return Data; } public Vector128<float> ReadVector8Unchecked(long Position) @@ -392,9 +399,7 @@ namespace ChocolArm64.Memory { if (Sse.IsSupported) { - byte* Address = RamPtr + (uint)Position; - - return Sse.LoadScalarVector128((float*)Address); + return Sse.LoadScalarVector128((float*)(RamPtr + (uint)Position)); } else { @@ -420,9 +425,7 @@ namespace ChocolArm64.Memory { if (Sse.IsSupported) { - byte* Address = RamPtr + (uint)Position; - - return Sse.LoadVector128((float*)Address); + return Sse.LoadVector128((float*)(RamPtr + (uint)Position)); } else { @@ -678,11 +681,12 @@ namespace ChocolArm64.Memory private void EnsureRangeIsValid(long Position, long Size, AMemoryPerm Perm) { - long EndPos = (Position + Size); - Position = Position & ~AMemoryMgr.PageMask; //check base of each page - while (Position < EndPos) + long EndPos = Position + Size; + + while ((ulong)Position < (ulong)EndPos) { EnsureAccessIsValid(Position, Perm); + Position += AMemoryMgr.PageSize; } } |
