From 9f0c5899d6d3c28cebc3f73c170f5e9d8f56d125 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Thu, 14 Aug 2014 16:15:04 +0400 Subject: [PATCH] Little fix (forbids pointer arithmetic in some places) --- rpcs3/Emu/Memory/Memory.h | 7 +++---- rpcs3/Emu/SysCalls/Modules/cellVdec.cpp | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/rpcs3/Emu/Memory/Memory.h b/rpcs3/Emu/Memory/Memory.h index 0c230593d2..4df6ff55a3 100644 --- a/rpcs3/Emu/Memory/Memory.h +++ b/rpcs3/Emu/Memory/Memory.h @@ -657,15 +657,14 @@ public: return false; } - template u8* operator + (const T vaddr) + template void* operator + (const T vaddr) { - u8* ret = GetMemFromAddr(vaddr); - return ret; + return GetMemFromAddr(vaddr); } template u8& operator[] (const T vaddr) { - return *(*this + vaddr); + return *GetMemFromAddr(vaddr); } }; diff --git a/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp b/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp index c2b5d0b99e..9cb6efa0bf 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp @@ -589,7 +589,7 @@ int cellVdecGetPicture(u32 handle, const mem_ptr_t format, u3 // TODO: zero padding bytes - int err = av_image_copy_to_buffer(Memory + out_addr, buf_size, frame.data, frame.linesize, vdec->ctx->pix_fmt, frame.width, frame.height, 1); + int err = av_image_copy_to_buffer(Memory.GetMemFromAddr(out_addr), buf_size, frame.data, frame.linesize, vdec->ctx->pix_fmt, frame.width, frame.height, 1); if (err < 0) { cellVdec->Error("cellVdecGetPicture: av_image_copy_to_buffer failed(%d)", err);