From 183b4cb45cd1a227f3700c911002bc07d47e15af Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Mon, 16 Dec 2013 23:47:34 -0800 Subject: [PATCH] Add a static method for creating PSPPointers. This is still kinda ugly, but the assignment thing was just too ugly, I couldn't do it anymore. --- Core/HLE/sceAtrac.cpp | 3 +-- Core/HLE/sceCcc.cpp | 18 ++++++------------ Core/HLE/sceCtrl.cpp | 3 +-- Core/HLE/sceGe.cpp | 6 ++---- Core/HLE/sceIo.cpp | 3 +-- Core/HLE/sceKernelModule.cpp | 3 +-- Core/HLE/sceKernelThread.cpp | 9 +++------ Core/HLE/sceMpeg.cpp | 3 +-- Core/HLE/scePsmf.cpp | 3 +-- Core/HLE/sceUmd.cpp | 3 +-- Core/MemMap.h | 6 ++++++ GPU/GPUCommon.cpp | 3 +-- 12 files changed, 25 insertions(+), 38 deletions(-) diff --git a/Core/HLE/sceAtrac.cpp b/Core/HLE/sceAtrac.cpp index dc62835d8a..e07d19fb32 100644 --- a/Core/HLE/sceAtrac.cpp +++ b/Core/HLE/sceAtrac.cpp @@ -694,8 +694,7 @@ u32 sceAtracEndEntry() { } u32 sceAtracGetBufferInfoForResetting(int atracID, int sample, u32 bufferInfoAddr) { - PSPPointer bufferInfo; - bufferInfo = bufferInfoAddr; + auto bufferInfo = PSPPointer::Create(bufferInfoAddr); Atrac *atrac = getAtrac(atracID); if (!atrac) { diff --git a/Core/HLE/sceCcc.cpp b/Core/HLE/sceCcc.cpp index a73690d7b0..c3beafc28f 100644 --- a/Core/HLE/sceCcc.cpp +++ b/Core/HLE/sceCcc.cpp @@ -289,8 +289,7 @@ int sceCccStrlenSJIS(u32 strAddr) u32 sceCccEncodeUTF8(u32 dstAddrAddr, u32 ucs) { - PSPPointer dstp; - dstp = dstAddrAddr; + auto dstp = PSPPointer::Create(dstAddrAddr); if (!dstp.IsValid() || !dstp->IsValid()) { @@ -304,8 +303,7 @@ u32 sceCccEncodeUTF8(u32 dstAddrAddr, u32 ucs) void sceCccEncodeUTF16(u32 dstAddrAddr, u32 ucs) { - PSPPointer dstp; - dstp = dstAddrAddr; + auto dstp = PSPPointer::Create(dstAddrAddr); if (!dstp.IsValid() || !dstp->IsValid()) { @@ -321,8 +319,7 @@ void sceCccEncodeUTF16(u32 dstAddrAddr, u32 ucs) u32 sceCccEncodeSJIS(u32 dstAddrAddr, u32 jis) { - PSPPointer dstp; - dstp = dstAddrAddr; + auto dstp = PSPPointer::Create(dstAddrAddr); if (!dstp.IsValid() || !dstp->IsValid()) { @@ -336,8 +333,7 @@ u32 sceCccEncodeSJIS(u32 dstAddrAddr, u32 jis) u32 sceCccDecodeUTF8(u32 dstAddrAddr) { - PSPPointer dstp; - dstp = dstAddrAddr; + auto dstp = PSPPointer::Create(dstAddrAddr); if (!dstp.IsValid() || !dstp->IsValid()) { ERROR_LOG(HLE, "sceCccDecodeUTF8(%08x): invalid pointer", dstAddrAddr); @@ -357,8 +353,7 @@ u32 sceCccDecodeUTF8(u32 dstAddrAddr) u32 sceCccDecodeUTF16(u32 dstAddrAddr) { - PSPPointer dstp; - dstp = dstAddrAddr; + auto dstp = PSPPointer::Create(dstAddrAddr); if (!dstp.IsValid() || !dstp->IsValid()) { ERROR_LOG(HLE, "sceCccDecodeUTF16(%08x): invalid pointer", dstAddrAddr); @@ -379,8 +374,7 @@ u32 sceCccDecodeUTF16(u32 dstAddrAddr) u32 sceCccDecodeSJIS(u32 dstAddrAddr) { - PSPPointer dstp; - dstp = dstAddrAddr; + auto dstp = PSPPointer::Create(dstAddrAddr); if (!dstp.IsValid() || !dstp->IsValid()) { ERROR_LOG(HLE, "sceCccDecodeSJIS(%08x): invalid pointer", dstAddrAddr); diff --git a/Core/HLE/sceCtrl.cpp b/Core/HLE/sceCtrl.cpp index ad99f5f649..cc19502d58 100644 --- a/Core/HLE/sceCtrl.cpp +++ b/Core/HLE/sceCtrl.cpp @@ -236,8 +236,7 @@ int __CtrlReadBuffer(u32 ctrlDataPtr, u32 nBufs, bool negative, bool peek) ctrlBufRead = (ctrlBuf - availBufs + NUM_CTRL_BUFFERS) % NUM_CTRL_BUFFERS; int done = 0; - PSPPointer<_ctrl_data> data; - data = ctrlDataPtr; + auto data = PSPPointer<_ctrl_data>::Create(ctrlDataPtr); for (u32 i = 0; i < availBufs; ++i) done += __CtrlReadSingleBuffer(data++, negative); diff --git a/Core/HLE/sceGe.cpp b/Core/HLE/sceGe.cpp index 773b9ba78b..6398a8b580 100644 --- a/Core/HLE/sceGe.cpp +++ b/Core/HLE/sceGe.cpp @@ -333,8 +333,7 @@ u32 sceGeListEnQueue(u32 listAddress, u32 stallAddress, int callbackId, DEBUG_LOG(SCEGE, "sceGeListEnQueue(addr=%08x, stall=%08x, cbid=%08x, param=%08x)", listAddress, stallAddress, callbackId, optParamAddr); - PSPPointer optParam; - optParam = optParamAddr; + auto optParam = PSPPointer::Create(optParamAddr); u32 listID = gpu->EnqueueList(listAddress, stallAddress, __GeSubIntrBase(callbackId), optParam, false); if ((int)listID >= 0) @@ -352,8 +351,7 @@ u32 sceGeListEnQueueHead(u32 listAddress, u32 stallAddress, int callbackId, DEBUG_LOG(SCEGE, "sceGeListEnQueueHead(addr=%08x, stall=%08x, cbid=%08x, param=%08x)", listAddress, stallAddress, callbackId, optParamAddr); - PSPPointer optParam; - optParam = optParamAddr; + auto optParam = PSPPointer::Create(optParamAddr); u32 listID = gpu->EnqueueList(listAddress, stallAddress, __GeSubIntrBase(callbackId), optParam, true); if ((int)listID >= 0) diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index 527db23a32..a8574621a3 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -2111,8 +2111,7 @@ u32 sceIoIoctlAsync(u32 id, u32 cmd, u32 indataPtr, u32 inlen, u32 outdataPtr, u u32 sceIoGetFdList(u32 outAddr, int outSize, u32 fdNumAddr) { WARN_LOG(SCEIO, "sceIoGetFdList(%08x, %i, %08x)", outAddr, outSize, fdNumAddr); - PSPPointer out; - out = outAddr; + auto out = PSPPointer::Create(outAddr); int count = 0; // Always have the first three. diff --git a/Core/HLE/sceKernelModule.cpp b/Core/HLE/sceKernelModule.cpp index acd14ade12..b9ea930af1 100644 --- a/Core/HLE/sceKernelModule.cpp +++ b/Core/HLE/sceKernelModule.cpp @@ -1803,8 +1803,7 @@ u32 sceKernelQueryModuleInfo(u32 uid, u32 infoAddr) return -1; } - PSPPointer info; - info = infoAddr; + auto info = PSPPointer::Create(infoAddr); memcpy(info->segmentaddr, module->nm.segmentaddr, sizeof(info->segmentaddr)); memcpy(info->segmentsize, module->nm.segmentsize, sizeof(info->segmentsize)); diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 03ff9621e9..8b69a58743 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -1535,8 +1535,7 @@ u32 sceKernelReferThreadRunStatus(u32 threadID, u32 statusPtr) if (!Memory::IsValidAddress(statusPtr)) return -1; - PSPPointer runStatus; - runStatus = statusPtr; + auto runStatus = PSPPointer::Create(statusPtr); // TODO: Check size? runStatus->size = sizeof(SceKernelThreadRunStatus); @@ -2575,8 +2574,7 @@ int sceKernelDelayThread(u32 usec) int sceKernelDelaySysClockThreadCB(u32 sysclockAddr) { - PSPPointer sysclock; - sysclock = sysclockAddr; + auto sysclock = PSPPointer::Create(sysclockAddr); if (!sysclock.IsValid()) { ERROR_LOG(SCEKERNEL, "sceKernelDelaySysClockThreadCB(%08x) - bad pointer", sysclockAddr); return -1; @@ -2594,8 +2592,7 @@ int sceKernelDelaySysClockThreadCB(u32 sysclockAddr) int sceKernelDelaySysClockThread(u32 sysclockAddr) { - PSPPointer sysclock; - sysclock = sysclockAddr; + auto sysclock = PSPPointer::Create(sysclockAddr); if (!sysclock.IsValid()) { ERROR_LOG(SCEKERNEL, "sceKernelDelaySysClockThread(%08x) - bad pointer", sysclockAddr); return -1; diff --git a/Core/HLE/sceMpeg.cpp b/Core/HLE/sceMpeg.cpp index dd4ccad48d..e62afc50d5 100644 --- a/Core/HLE/sceMpeg.cpp +++ b/Core/HLE/sceMpeg.cpp @@ -900,8 +900,7 @@ int sceMpegQueryAtracEsSize(u32 mpeg, u32 esSizeAddr, u32 outSizeAddr) int sceMpegRingbufferAvailableSize(u32 ringbufferAddr) { - PSPPointer ringbuffer; - ringbuffer = ringbufferAddr; + auto ringbuffer = PSPPointer::Create(ringbufferAddr); if (!ringbuffer.IsValid()) { ERROR_LOG(ME, "sceMpegRingbufferAvailableSize(%08x) - bad address", ringbufferAddr); diff --git a/Core/HLE/scePsmf.cpp b/Core/HLE/scePsmf.cpp index d5317869c2..e0deb26515 100644 --- a/Core/HLE/scePsmf.cpp +++ b/Core/HLE/scePsmf.cpp @@ -395,8 +395,7 @@ static std::map psmfPlayerMap; Psmf *getPsmf(u32 psmf) { - PSPPointer psmfstruct; - psmfstruct = psmf; + auto psmfstruct = PSPPointer::Create(psmf); if (!psmfstruct.IsValid()) return 0; auto iter = psmfMap.find(psmfstruct->headerOffset); diff --git a/Core/HLE/sceUmd.cpp b/Core/HLE/sceUmd.cpp index 6bf970ba9a..c7defa11b5 100644 --- a/Core/HLE/sceUmd.cpp +++ b/Core/HLE/sceUmd.cpp @@ -222,8 +222,7 @@ u32 sceUmdGetDiscInfo(u32 infoAddr) DEBUG_LOG(SCEIO, "sceUmdGetDiscInfo(%08x)", infoAddr); if (Memory::IsValidAddress(infoAddr)) { - PSPPointer info; - info = infoAddr; + auto info = PSPPointer::Create(infoAddr); if (info->size != 8) return PSP_ERROR_UMD_INVALID_PARAM; diff --git a/Core/MemMap.h b/Core/MemMap.h index 9ae6488315..60d2da3175 100644 --- a/Core/MemMap.h +++ b/Core/MemMap.h @@ -428,6 +428,12 @@ struct PSPPointer { return Memory::IsValidAddress(ptr); } + + static PSPPointer Create(u32 ptr) { + PSPPointer p; + p = ptr; + return p; + } }; diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp index 3cfff675d4..efbcc6a202 100644 --- a/GPU/GPUCommon.cpp +++ b/GPU/GPUCommon.cpp @@ -182,8 +182,7 @@ int GPUCommon::GetStack(int index, u32 stackPtr) { } if (index >= 0) { - PSPPointer stack; - stack = stackPtr; + auto stack = PSPPointer::Create(stackPtr); if (stack.IsValid()) { auto entry = currentList->stack[index]; // Not really sure what most of these values are.