diff options
| author | robojumper <robojumper@gmail.com> | 2024-05-04 00:39:30 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2024-05-04 19:59:42 +0200 |
| commit | fa4b2862fd54925affe5ce9fa64dc6c37a71fb28 (patch) | |
| tree | 832fea965092b5b492dcc0d96f738c8261da2ed2 /include/egg | |
| parent | 1ecdfe9a4dfdd429c04424d77a9c0e6c148832a1 (diff) | |
dHeap(Allocator) work
Diffstat (limited to 'include/egg')
| -rw-r--r-- | include/egg/core/eggHeap.h | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/include/egg/core/eggHeap.h b/include/egg/core/eggHeap.h index 10b114e9..0bd0b508 100644 --- a/include/egg/core/eggHeap.h +++ b/include/egg/core/eggHeap.h @@ -17,14 +17,15 @@ namespace EGG { class Allocator; struct HeapAllocArg { - int userArg; // 00 + void *userArg; // 00 u32 size; // 04 int align; // 08 Heap *heap; // 0C heap to allocate in + int another; // 10 inline HeapAllocArg() : userArg(0), size(0), align(0), heap(nullptr) {} }; -typedef void (*HeapAllocCallback)(HeapAllocArg &arg); +typedef void (*HeapAllocCallback)(HeapAllocArg *arg); struct HeapErrorArg { const char *msg; @@ -32,13 +33,14 @@ struct HeapErrorArg { inline HeapErrorArg() {} }; -typedef void (*ErrorCallback)(void *); +typedef void (*ErrorCallback)(HeapErrorArg *); struct HeapFreeArg { - u32 arg1; // Idk the args - u32 arg2; + void *userArg; + int arg1; + int arg2; }; -typedef void (*HeapFreeCallback)(void *); +typedef void (*HeapFreeCallback)(HeapFreeArg *); typedef void (*HeapCreateCallback)(void *); typedef void (*HeapDestroyCallback)(void *); @@ -151,14 +153,14 @@ public: /* 80576760 */ static void *sFreeCallbackArg; /* 80576764 */ static HeapCreateCallback sCreateCallback; /* 80576764 */ static HeapDestroyCallback sDestroyCallback; + + /* 80495a60 */ void *operator new(size_t, void *p); + /* 80495a70 */ void *operator new(size_t size, EGG::Heap *heap, u32 align); + /* 80495a80 */ void *operator new(size_t size, EGG::Allocator *alloc); + /* 80495a90 */ void *operator new[](size_t size, u32 align); + /* 80495aa0 */ void *operator new[](size_t size, EGG::Heap *heap, int align); }; } // namespace EGG -/* 80495a60 */ void *operator new(size_t, void *p); -/* 80495a70 */ void *operator new(size_t size, EGG::Heap *heap, u32 align); -/* 80495a80 */ void *operator new(size_t size, EGG::Allocator *alloc); -/* 80495a90 */ void *operator new[](size_t size, u32 align); -/* 80495aa0 */ void *operator new[](size_t size, EGG::Heap *heap, int align); - #endif |
