summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2020-11-28 16:16:15 +0100
committeraap <aap@papnet.eu>2020-11-28 17:05:57 +0100
commita8035b64662e9b9fe6689ec60e5087ff95bc2672 (patch)
tree31f809fff530c5b7b8ea2a4714766d3284b0caf5
parentMerge branch 'master' of github.com:GTAmodding/re3 (diff)
downloadre3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.tar
re3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.tar.gz
re3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.tar.bz2
re3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.tar.lz
re3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.tar.xz
re3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.tar.zst
re3-a8035b64662e9b9fe6689ec60e5087ff95bc2672.zip
-rw-r--r--src/animation/AnimBlendAssociation.cpp2
-rw-r--r--src/animation/AnimBlendClumpData.cpp2
-rw-r--r--src/core/CdStream.cpp2
-rw-r--r--src/core/CdStreamPosix.cpp2
-rw-r--r--src/core/Streaming.cpp1
-rw-r--r--src/render/PlayerSkin.cpp1
-rw-r--r--src/rw/MemoryHeap.cpp125
-rw-r--r--src/rw/MemoryHeap.h12
-rw-r--r--src/rw/MemoryMgr.cpp130
-rw-r--r--src/rw/MemoryMgr.h12
-rw-r--r--src/skel/glfw/glfw.cpp2
-rw-r--r--src/skel/win/win.cpp2
12 files changed, 150 insertions, 143 deletions
diff --git a/src/animation/AnimBlendAssociation.cpp b/src/animation/AnimBlendAssociation.cpp
index 61d7d69c..b03571b0 100644
--- a/src/animation/AnimBlendAssociation.cpp
+++ b/src/animation/AnimBlendAssociation.cpp
@@ -5,7 +5,7 @@
#include "RpAnimBlend.h"
#include "AnimManager.h"
#include "AnimBlendAssociation.h"
-#include "MemoryHeap.h"
+#include "MemoryMgr.h"
CAnimBlendAssociation::CAnimBlendAssociation(void)
{
diff --git a/src/animation/AnimBlendClumpData.cpp b/src/animation/AnimBlendClumpData.cpp
index fd2a58de..92515427 100644
--- a/src/animation/AnimBlendClumpData.cpp
+++ b/src/animation/AnimBlendClumpData.cpp
@@ -1,7 +1,7 @@
#include "common.h"
#include "AnimBlendClumpData.h"
-#include "MemoryHeap.h"
+#include "MemoryMgr.h"
CAnimBlendClumpData::CAnimBlendClumpData(void)
diff --git a/src/core/CdStream.cpp b/src/core/CdStream.cpp
index a1235930..f987dea5 100644
--- a/src/core/CdStream.cpp
+++ b/src/core/CdStream.cpp
@@ -5,7 +5,7 @@
#include "CdStream.h"
#include "rwcore.h"
#include "RwHelper.h"
-#include "MemoryHeap.h"
+#include "MemoryMgr.h"
#define CDDEBUG(f, ...) debug ("%s: " f "\n", "cdvd_stream", ## __VA_ARGS__)
#define CDTRACE(f, ...) printf("%s: " f "\n", "cdvd_stream", ## __VA_ARGS__)
diff --git a/src/core/CdStreamPosix.cpp b/src/core/CdStreamPosix.cpp
index 35a90a74..0854d850 100644
--- a/src/core/CdStreamPosix.cpp
+++ b/src/core/CdStreamPosix.cpp
@@ -16,7 +16,7 @@
#include "CdStream.h"
#include "rwcore.h"
-#include "RwHelper.h"
+#include "MemoryMgr.h"
#define CDDEBUG(f, ...) debug ("%s: " f "\n", "cdvd_stream", ## __VA_ARGS__)
#define CDTRACE(f, ...) printf("%s: " f "\n", "cdvd_stream", ## __VA_ARGS__)
diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp
index 628d4923..a28fe39d 100644
--- a/src/core/Streaming.cpp
+++ b/src/core/Streaming.cpp
@@ -34,6 +34,7 @@
#include "main.h"
#include "Frontend.h"
#include "Font.h"
+#include "MemoryMgr.h"
#include "MemoryHeap.h"
bool CStreaming::ms_disableStreaming;
diff --git a/src/render/PlayerSkin.cpp b/src/render/PlayerSkin.cpp
index d66f7ce4..f0fae45a 100644
--- a/src/render/PlayerSkin.cpp
+++ b/src/render/PlayerSkin.cpp
@@ -14,6 +14,7 @@
#include "RwHelper.h"
#include "Timer.h"
#include "Lights.h"
+#include "MemoryMgr.h"
RpClump *gpPlayerClump;
float gOldFov;
diff --git a/src/rw/MemoryHeap.cpp b/src/rw/MemoryHeap.cpp
index 2cf173b6..0b333ce1 100644
--- a/src/rw/MemoryHeap.cpp
+++ b/src/rw/MemoryHeap.cpp
@@ -494,129 +494,4 @@ CommonSize::Init(uint32 size)
m_remaining = 0;
}
-
-
-void *pMemoryTop;
-
-void
-InitMemoryMgr(void)
-{
-#ifdef GTA_PS2
-#error "finish this"
-#else
- // randomly allocate 128mb
- gMainHeap.Init(128*1024*1024);
-#endif
-}
-
-
-RwMemoryFunctions memFuncs = {
- MemoryMgrMalloc,
- MemoryMgrFree,
- MemoryMgrRealloc,
- MemoryMgrCalloc
-};
-
-#ifdef USE_CUSTOM_ALLOCATOR
-// game seems to be using heap directly here, but this is nicer
-void *operator new(size_t sz) { return MemoryMgrMalloc(sz); }
-void *operator new[](size_t sz) { return MemoryMgrMalloc(sz); }
-void operator delete(void *ptr) noexcept { MemoryMgrFree(ptr); }
-void operator delete[](void *ptr) noexcept { MemoryMgrFree(ptr); }
-#endif
-#endif
-
-void*
-MemoryMgrMalloc(uint32 size)
-{
-#ifdef USE_CUSTOM_ALLOCATOR
- void *mem = gMainHeap.Malloc(size);
-#else
- void *mem = malloc(size);
-#endif
- if(mem > pMemoryTop)
- pMemoryTop = mem;
- return mem;
-}
-
-void*
-MemoryMgrRealloc(void *ptr, uint32 size)
-{
-#ifdef USE_CUSTOM_ALLOCATOR
- void *mem = gMainHeap.Realloc(ptr, size);
-#else
- void *mem = realloc(ptr, size);
-#endif
- if(mem > pMemoryTop)
- pMemoryTop = mem;
- return mem;
-}
-
-void*
-MemoryMgrCalloc(uint32 num, uint32 size)
-{
-#ifdef USE_CUSTOM_ALLOCATOR
- void *mem = gMainHeap.Malloc(num*size);
-#else
- void *mem = calloc(num, size);
#endif
- if(mem > pMemoryTop)
- pMemoryTop = mem;
-#ifdef FIX_BUGS
- memset(mem, 0, num*size);
-#endif
- return mem;
-}
-
-void
-MemoryMgrFree(void *ptr)
-{
-#ifdef USE_CUSTOM_ALLOCATOR
-#ifdef FIX_BUGS
- // i don't suppose this is handled by RW?
- if(ptr == nil) return;
-#endif
- gMainHeap.Free(ptr);
-#else
- free(ptr);
-#endif
-}
-
-void *
-RwMallocAlign(RwUInt32 size, RwUInt32 align)
-{
-#ifdef FIX_BUGS
- uintptr ptralign = align-1;
- void *mem = (void *)MemoryMgrMalloc(size + sizeof(uintptr) + ptralign);
-
- ASSERT(mem != nil);
-
- void *addr = (void *)((((uintptr)mem) + sizeof(uintptr) + ptralign) & ~ptralign);
-
- ASSERT(addr != nil);
-#else
- void *mem = (void *)MemoryMgrMalloc(size + align);
-
- ASSERT(mem != nil);
-
- void *addr = (void *)((((uintptr)mem) + align) & ~(align - 1));
-
- ASSERT(addr != nil);
-#endif
-
- *(((void **)addr) - 1) = mem;
-
- return addr;
-}
-
-void
-RwFreeAlign(void *mem)
-{
- ASSERT(mem != nil);
-
- void *addr = *(((void **)mem) - 1);
-
- ASSERT(addr != nil);
-
- MemoryMgrFree(addr);
-}
diff --git a/src/rw/MemoryHeap.h b/src/rw/MemoryHeap.h
index 22e13617..484cbfab 100644
--- a/src/rw/MemoryHeap.h
+++ b/src/rw/MemoryHeap.h
@@ -62,18 +62,6 @@ enum {
NUM_FIXED_MEMBLOCKS = 6
};
-extern RwMemoryFunctions memFuncs;
-void InitMemoryMgr(void);
-
-void *MemoryMgrMalloc(uint32 size);
-void *MemoryMgrRealloc(void *ptr, uint32 size);
-void *MemoryMgrCalloc(uint32 num, uint32 size);
-void MemoryMgrFree(void *ptr);
-
-void *RwMallocAlign(RwUInt32 size, RwUInt32 align);
-void RwFreeAlign(void *mem);
-
-
template<typename T, uint32 N>
class CStack
{
diff --git a/src/rw/MemoryMgr.cpp b/src/rw/MemoryMgr.cpp
new file mode 100644
index 00000000..ef0ecbdf
--- /dev/null
+++ b/src/rw/MemoryMgr.cpp
@@ -0,0 +1,130 @@
+#include "common.h"
+#include "MemoryHeap.h"
+#include "MemoryMgr.h"
+
+
+void *pMemoryTop;
+
+void
+InitMemoryMgr(void)
+{
+#ifdef USE_CUSTOM_ALLOCATOR
+#ifdef GTA_PS2
+#error "finish this"
+#else
+ // randomly allocate 128mb
+ gMainHeap.Init(128*1024*1024);
+#endif
+#endif
+}
+
+
+RwMemoryFunctions memFuncs = {
+ MemoryMgrMalloc,
+ MemoryMgrFree,
+ MemoryMgrRealloc,
+ MemoryMgrCalloc
+};
+
+#ifdef USE_CUSTOM_ALLOCATOR
+// game seems to be using heap directly here, but this is nicer
+void *operator new(size_t sz) { return MemoryMgrMalloc(sz); }
+void *operator new[](size_t sz) { return MemoryMgrMalloc(sz); }
+void operator delete(void *ptr) noexcept { MemoryMgrFree(ptr); }
+void operator delete[](void *ptr) noexcept { MemoryMgrFree(ptr); }
+#endif
+
+void*
+MemoryMgrMalloc(size_t size)
+{
+#ifdef USE_CUSTOM_ALLOCATOR
+ void *mem = gMainHeap.Malloc(size);
+#else
+ void *mem = malloc(size);
+#endif
+ if(mem > pMemoryTop)
+ pMemoryTop = mem;
+ return mem;
+}
+
+void*
+MemoryMgrRealloc(void *ptr, size_t size)
+{
+#ifdef USE_CUSTOM_ALLOCATOR
+ void *mem = gMainHeap.Realloc(ptr, size);
+#else
+ void *mem = realloc(ptr, size);
+#endif
+ if(mem > pMemoryTop)
+ pMemoryTop = mem;
+ return mem;
+}
+
+void*
+MemoryMgrCalloc(size_t num, size_t size)
+{
+#ifdef USE_CUSTOM_ALLOCATOR
+ void *mem = gMainHeap.Malloc(num*size);
+#else
+ void *mem = calloc(num, size);
+#endif
+ if(mem > pMemoryTop)
+ pMemoryTop = mem;
+#ifdef FIX_BUGS
+ memset(mem, 0, num*size);
+#endif
+ return mem;
+}
+
+void
+MemoryMgrFree(void *ptr)
+{
+#ifdef USE_CUSTOM_ALLOCATOR
+#ifdef FIX_BUGS
+ // i don't suppose this is handled by RW?
+ if(ptr == nil) return;
+#endif
+ gMainHeap.Free(ptr);
+#else
+ free(ptr);
+#endif
+}
+
+void *
+RwMallocAlign(RwUInt32 size, RwUInt32 align)
+{
+#ifdef FIX_BUGS
+ uintptr ptralign = align-1;
+ void *mem = (void *)MemoryMgrMalloc(size + sizeof(uintptr) + ptralign);
+
+ ASSERT(mem != nil);
+
+ void *addr = (void *)((((uintptr)mem) + sizeof(uintptr) + ptralign) & ~ptralign);
+
+ ASSERT(addr != nil);
+#else
+ void *mem = (void *)MemoryMgrMalloc(size + align);
+
+ ASSERT(mem != nil);
+
+ void *addr = (void *)((((uintptr)mem) + align) & ~(align - 1));
+
+ ASSERT(addr != nil);
+#endif
+
+ *(((void **)addr) - 1) = mem;
+
+ return addr;
+}
+
+void
+RwFreeAlign(void *mem)
+{
+ ASSERT(mem != nil);
+
+ void *addr = *(((void **)mem) - 1);
+
+ ASSERT(addr != nil);
+
+ MemoryMgrFree(addr);
+}
diff --git a/src/rw/MemoryMgr.h b/src/rw/MemoryMgr.h
new file mode 100644
index 00000000..e2962806
--- /dev/null
+++ b/src/rw/MemoryMgr.h
@@ -0,0 +1,12 @@
+#pragma once
+
+extern RwMemoryFunctions memFuncs;
+void InitMemoryMgr(void);
+
+void *MemoryMgrMalloc(size_t size);
+void *MemoryMgrRealloc(void *ptr, size_t size);
+void *MemoryMgrCalloc(size_t num, size_t size);
+void MemoryMgrFree(void *ptr);
+
+void *RwMallocAlign(RwUInt32 size, RwUInt32 align);
+void RwFreeAlign(void *mem);
diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp
index 2722a4df..0bde1282 100644
--- a/src/skel/glfw/glfw.cpp
+++ b/src/skel/glfw/glfw.cpp
@@ -40,7 +40,7 @@
#include "Sprite2d.h"
#include "AnimViewer.h"
#include "Font.h"
-#include "MemoryHeap.h"
+#include "MemoryMgr.h"
#define MAX_SUBSYSTEMS (16)
diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp
index b4897d67..5f6d662c 100644
--- a/src/skel/win/win.cpp
+++ b/src/skel/win/win.cpp
@@ -97,7 +97,7 @@ static psGlobalType PsGlobal;
#include "Sprite2d.h"
#include "AnimViewer.h"
#include "Font.h"
-#include "MemoryHeap.h"
+#include "MemoryMgr.h"
VALIDATE_SIZE(psGlobalType, 0x28);