[Project64] get Recompiler Memory.cpp to use standard types

This commit is contained in:
zilmar 2015-11-10 07:22:51 +11:00
parent d06eae9457
commit dda79ce345
2 changed files with 28 additions and 26 deletions

View File

@ -11,8 +11,8 @@
#include "stdafx.h" #include "stdafx.h"
CRecompMemory::CRecompMemory() : CRecompMemory::CRecompMemory() :
m_RecompCode(NULL), m_RecompCode(NULL),
m_RecompSize(0) m_RecompSize(0)
{ {
m_RecompPos = NULL; m_RecompPos = NULL;
} }
@ -21,7 +21,7 @@ CRecompMemory::~CRecompMemory()
{ {
if (m_RecompCode) if (m_RecompCode)
{ {
VirtualFree( m_RecompCode, 0 , MEM_RELEASE); VirtualFree(m_RecompCode, 0, MEM_RELEASE);
m_RecompCode = NULL; m_RecompCode = NULL;
} }
m_RecompPos = NULL; m_RecompPos = NULL;
@ -29,25 +29,25 @@ CRecompMemory::~CRecompMemory()
bool CRecompMemory::AllocateMemory() bool CRecompMemory::AllocateMemory()
{ {
BYTE * RecompCodeBase = (BYTE *)VirtualAlloc( NULL, MaxCompileBufferSize + 4, MEM_RESERVE|MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE); BYTE * RecompCodeBase = (BYTE *)VirtualAlloc(NULL, MaxCompileBufferSize + 4, MEM_RESERVE | MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE);
if (RecompCodeBase == NULL) if (RecompCodeBase == NULL)
{ {
WriteTrace(TraceError,__FUNCTION__ ": failed to allocate RecompCodeBase"); WriteTrace(TraceError, __FUNCTION__ ": failed to allocate RecompCodeBase");
g_Notify->DisplayError(MSG_MEM_ALLOC_ERROR); g_Notify->DisplayError(MSG_MEM_ALLOC_ERROR);
return false; return false;
} }
m_RecompCode = (BYTE *)VirtualAlloc( RecompCodeBase, InitialCompileBufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); m_RecompCode = (BYTE *)VirtualAlloc(RecompCodeBase, InitialCompileBufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (m_RecompCode == NULL) if (m_RecompCode == NULL)
{ {
WriteTrace(TraceError,__FUNCTION__ ": failed to commit initial buffer"); WriteTrace(TraceError, __FUNCTION__ ": failed to commit initial buffer");
VirtualFree( RecompCodeBase, 0 , MEM_RELEASE); VirtualFree(RecompCodeBase, 0, MEM_RELEASE);
g_Notify->DisplayError(MSG_MEM_ALLOC_ERROR); g_Notify->DisplayError(MSG_MEM_ALLOC_ERROR);
return false; return false;
} }
m_RecompSize = InitialCompileBufferSize; m_RecompSize = InitialCompileBufferSize;
m_RecompPos = m_RecompCode; m_RecompPos = m_RecompCode;
memset(m_RecompCode,0,InitialCompileBufferSize); memset(m_RecompCode, 0, InitialCompileBufferSize);
return true; return true;
} }
@ -63,14 +63,13 @@ void CRecompMemory::CheckRecompMem()
g_Recompiler->ResetRecompCode(true); g_Recompiler->ResetRecompCode(true);
return; return;
} }
LPVOID MemAddr = VirtualAlloc( m_RecompCode + m_RecompSize , IncreaseCompileBufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); LPVOID MemAddr = VirtualAlloc(m_RecompCode + m_RecompSize, IncreaseCompileBufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (MemAddr == NULL) if (MemAddr == NULL)
{ {
WriteTrace(TraceError,__FUNCTION__ ": failed to increase buffer"); WriteTrace(TraceError, __FUNCTION__ ": failed to increase buffer");
g_Notify->FatalError(MSG_MEM_ALLOC_ERROR); g_Notify->FatalError(MSG_MEM_ALLOC_ERROR);
} }
m_RecompSize += IncreaseCompileBufferSize; m_RecompSize += IncreaseCompileBufferSize;
} }
void CRecompMemory::Reset() void CRecompMemory::Reset()
@ -84,9 +83,9 @@ void CRecompMemory::ShowMemUsed()
DWORD MB = Size / 0x100000; DWORD MB = Size / 0x100000;
Size -= MB * 0x100000; Size -= MB * 0x100000;
DWORD KB = Size / 1024; DWORD KB = Size / 1024;
Size -= KB * 1024; Size -= KB * 1024;
DWORD TotalAvaliable = m_RecompSize / 0x100000; DWORD TotalAvaliable = m_RecompSize / 0x100000;
g_Notify->DisplayMessage(0,stdstr_f("Memory used: %d mb %-3d kb %-3d bytes Total Available: %d mb",MB,KB,Size, TotalAvaliable).ToUTF16().c_str()); g_Notify->DisplayMessage(0, stdstr_f("Memory used: %d mb %-3d kb %-3d bytes Total Available: %d mb", MB, KB, Size, TotalAvaliable).ToUTF16().c_str());
} }

View File

@ -22,13 +22,16 @@ protected:
void Reset(); void Reset();
void ShowMemUsed(); void ShowMemUsed();
BYTE* RecompPos() const { return m_RecompPos; } uint8_t* RecompPos() const { return m_RecompPos; }
private: private:
BYTE * m_RecompCode; CRecompMemory(const CRecompMemory&); // Disable copy constructor
DWORD m_RecompSize; CRecompMemory& operator=(const CRecompMemory&); // Disable assignment
enum { MaxCompileBufferSize = 0x03C00000 }; uint8_t * m_RecompCode;
enum { InitialCompileBufferSize = 0x00500000 }; uint32_t m_RecompSize;
enum { MaxCompileBufferSize = 0x03C00000 };
enum { InitialCompileBufferSize = 0x00500000 };
enum { IncreaseCompileBufferSize = 0x00100000 }; enum { IncreaseCompileBufferSize = 0x00100000 };
}; };