1#include "Game/Util.hpp"
2#include "Game/System/HeapMemoryWatcher.hpp"
3#include "Game/SingletonHolder.hpp"
10 MEMAllocatorFunc NewDeleteAllocator::sAllocatorFunc = {
11 NewDeleteAllocator::alloc,
12 NewDeleteAllocator::free,
14 MEMAllocator NewDeleteAllocator::sAllocator = { &sAllocatorFunc };
18 s32 calcCheckSum(
const void *pData, u32 a2) {
22 for (
int i = a2 >> 1; i; i--) {
23 u16 curData = *(u16*)pData;
24 pData = (s8*)pData + 2;
29 return (v3 << 16) | v2;
33 CurrentHeapRestorer::CurrentHeapRestorer(JKRHeap *pHeap) {
34 _0 = JKRHeap::sCurrentHeap;
36 MR::becomeCurrentHeap(pHeap);
39 CurrentHeapRestorer::~CurrentHeapRestorer() {
40 MR::becomeCurrentHeap(_0);
44 void* NewDeleteAllocator::alloc(MEMAllocator *pAllocator, u32 size) {
48 void NewDeleteAllocator::free(MEMAllocator *pAllocator,
void *pData) {
54 JKRHeap* getCurrentHeap() {
55 return JKRHeap::sCurrentHeap;
60 JKRExpHeap* MR::getStationedHeapNapa() {
64 JKRExpHeap* getStationedHeapGDDR3() {
68 JKRSolidHeap* getSceneHeapNapa() {
72 JKRSolidHeap* getSceneHeapGDDR3() {
79 void becomeCurrentHeap(JKRHeap *pHeap) {
81 pHeap->becomeCurrentHeap();
85 bool isEqualCurrentHeap(JKRHeap *pHeap) {
86 return pHeap == JKRHeap::sCurrentHeap;
92 void fillMemory(
void *pDest, u8 a2,
size_t size) {
94 MR::zeroMemory(pDest, size);
97 memset(pDest, a2, size);