From cf8538d2a5cfb3a697015c1bcdea38f645fed2f5 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Sat, 4 Feb 2023 19:17:50 -0400 Subject: THeap: Add `THeap` class Some matching issues, but still a good start. --- context.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'context.h') diff --git a/context.h b/context.h index 12ae4e9..065559b 100644 --- a/context.h +++ b/context.h @@ -54,6 +54,7 @@ typedef int BOOL; // Class forward. +class THeap; class TObject; class TMainTask; @@ -73,7 +74,27 @@ u32 old_main_task_flags; u32 lbl_805c5b98; u32 lbl_805c5b9c; +// func defs. +extern void *heap_xfree(void *ptr); +extern void *heap_xmalloc(size_t size); + // Class defs. +class THeap { +public: + u8 *heap; + size_t alloc_size; + s32 align; + size_t heap_size; + s32 mbr_0x10; +public: + THeap(size_t size, int align); + ~THeap(); + void *operator new(size_t size) { return heap_xmalloc(size); }; + void operator delete(void *ptr) { heap_xfree(ptr); }; + void *heap_alloc(size_t size); + void *heap_zalloc(size_t size); + void heap_free(void *ptr); +}; class TObject { public: const char *name; -- cgit v1.2.3-13-gbd6f