MemoryManager of base::

This commit is contained in:
Sergeanur 2021-01-08 16:47:41 +02:00
parent 8485dcdb03
commit ead2a1a606
4 changed files with 117 additions and 0 deletions

View File

@ -237,6 +237,7 @@ project "reLCS"
files { addSrcFiles("src/control") }
files { addSrcFiles("src/core") }
files { addSrcFiles("src/entities") }
files { addSrcFiles("src/leeds/base") }
files { addSrcFiles("src/math") }
files { addSrcFiles("src/modelinfo") }
files { addSrcFiles("src/objects") }
@ -261,6 +262,7 @@ project "reLCS"
includedirs { "src/control" }
includedirs { "src/core" }
includedirs { "src/entities" }
includedirs { "src/leeds/base" }
includedirs { "src/math" }
includedirs { "src/modelinfo" }
includedirs { "src/objects" }

View File

@ -92,6 +92,7 @@ typedef ptrdiff_t ssize_t;
#endif
#include "config.h"
#include "memoryManager.h"
#include <rphanim.h>
#include <rpskin.h>

View File

@ -0,0 +1,75 @@
#include "common.h"
#include "memoryManager.h"
namespace base
{
cMemoryManager::cMemoryManager()
{
}
void* cMemoryManager::Allocate(uint32 size)
{
void* buf = malloc(size);
memset(buf, 0, size);
return buf;
}
void* cMemoryManager::AllocateAligned(uint32 size)
{
void* buf = malloc(size);
memset(buf, 0, size);
return buf;
}
void* cMemoryManager::Realloc(void* buf, uint32 newSize, bool unk)
{
return realloc(buf, newSize);
}
void cMemoryManager::Free(void* buf)
{
if (buf)
free(buf);
}
bool cMemoryManager::IsFree(void* buf)
{
return buf == nil;
}
cMainMemoryManager* cMainMemoryManager::m_pInstance = nil;
cMainMemoryManager::cMainMemoryManager()
{
assert(m_pInstance == nil);
m_pInstance = this;
Init(nil, 0);
}
void cMainMemoryManager::Init(void*, uint32)
{
}
};
void* operator new(uint32 size)
{
return base::cMainMemoryManager::Instance()->Allocate(size);
}
void* operator new[](uint32 size)
{
return base::cMainMemoryManager::Instance()->Allocate(size);
}
void operator delete(void* buf)
{
base::cMainMemoryManager::Instance()->Free(buf);
}
void operator delete[](void* buf)
{
base::cMainMemoryManager::Instance()->Free(buf);
}

View File

@ -0,0 +1,39 @@
#pragma once
namespace base
{
class cMemoryManager
{
public:
cMemoryManager();
void* Allocate(uint32 size);
void* AllocateAligned(uint32 size);
void* Realloc(void* buf, uint32 newSize, bool unk);
void Free(void* buf);
bool IsFree(void* buf);
};
class cMainMemoryManager : public cMemoryManager
{
static cMainMemoryManager* m_pInstance;
static void Init(void*, uint32);
public:
cMainMemoryManager();
static cMainMemoryManager *Instance()
{
static cMainMemoryManager instance;
return &instance;
}
};
class cMemoryBlock
{
// TODO
};
}
void* operator new(uint32 size);
void* operator new[](uint32 size);
void operator delete(void* buf);
void operator delete[](void* buf);