From 0e8fd39636bd1e96fd453120d1b9c943fc3136a0 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 8 Jun 2018 23:54:50 -0300 Subject: [PATCH] Small cleanup in AMemory and removed some unused usings --- Memory/AMemory.cs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Memory/AMemory.cs b/Memory/AMemory.cs index 7af288a..2adf540 100644 --- a/Memory/AMemory.cs +++ b/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 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; } }