| 73 | } |
| 74 | |
| 75 | JKRAramBlock *JKRAramHeap::allocFromTail(u32 size) |
| 76 | { |
| 77 | u32 alignedSize = ALIGN_NEXT(size, 0x20); |
| 78 | JKRAramBlock *tailBlock = nullptr; |
| 79 | |
| 80 | for (JSUListIterator<JKRAramBlock> iterator = sAramList.getLast(); iterator != sAramList.getEnd(); --iterator) |
| 81 | { |
| 82 | JKRAramBlock *block = iterator.getObject(); |
| 83 | if (block->mFreeSize >= alignedSize) |
| 84 | { |
| 85 | tailBlock = block; |
| 86 | break; |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | if (tailBlock) |
| 91 | { |
| 92 | return tailBlock->allocTail(alignedSize, mGroupID, this); |
| 93 | } |
| 94 | |
| 95 | return nullptr; |
| 96 | } |
| 97 | |
| 98 | /*u32 JKRAramHeap::getFreeSize(void) |
| 99 | { |