Small cleanup in AMemory and removed some unused usings

This commit is contained in:
gdkchan 2018-06-08 23:54:50 -03:00
parent 9136897d4a
commit 7822348439
5 changed files with 16 additions and 16 deletions

View File

@ -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;
}
}

View File

@ -1,7 +1,6 @@
using ChocolArm64.State;
using Ryujinx.Core.Logging;
using Ryujinx.Core.OsHle.Handles;
using System;
using System.Threading;
using static Ryujinx.Core.OsHle.ErrorCode;

View File

@ -1,5 +1,4 @@
using ChocolArm64.Memory;
using Ryujinx.Core.Logging;
using Ryujinx.Core.OsHle.Ipc;
using System;
using System.Collections.Generic;

View File

@ -1,4 +1,3 @@
using ChocolArm64.Memory;
using Ryujinx.Core.Logging;
using Ryujinx.Core.OsHle.Ipc;
using System.Collections.Generic;

View File

@ -1,4 +1,3 @@
using ChocolArm64.Memory;
using Ryujinx.Core.OsHle.Handles;
using Ryujinx.Core.OsHle.Ipc;
using Ryujinx.Core.OsHle.Services.Android;