summaryrefslogtreecommitdiff
path: root/src/JSystem/JKernel/JKRAramBlock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JKernel/JKRAramBlock.cpp')
-rw-r--r--src/JSystem/JKernel/JKRAramBlock.cpp24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/JSystem/JKernel/JKRAramBlock.cpp b/src/JSystem/JKernel/JKRAramBlock.cpp
index c1416686e9..a7a1fcf96d 100644
--- a/src/JSystem/JKernel/JKRAramBlock.cpp
+++ b/src/JSystem/JKernel/JKRAramBlock.cpp
@@ -18,8 +18,7 @@ JKRAramBlock::~JKRAramBlock() {
JSULink<JKRAramBlock>* prev = mBlockLink.getPrev();
if (prev) {
- JKRAramBlock* block = prev->getObject();
- block->mFreeSize = mSize + mFreeSize + block->mFreeSize;
+ prev->getObject()->mFreeSize += mSize + mFreeSize;
list->remove(&mBlockLink);
} else {
mFreeSize = mFreeSize + mSize;
@@ -28,35 +27,24 @@ JKRAramBlock::~JKRAramBlock() {
}
JKRAramBlock* JKRAramBlock::allocHead(u32 size, u8 groupId, JKRAramHeap* aramHeap) {
- u32 address = mAddress;
- u32 usedSize = mSize;
- u32 nextAddress = address + usedSize;
- u32 freeSize = mFreeSize;
- u32 nextFreeSize = freeSize - size;
+ u32 nextAddress = mAddress + mSize;
+ u32 nextFreeSize = mFreeSize - size;
JKRAramBlock* block = new (aramHeap->getMgrHeap(), 0)
JKRAramBlock(nextAddress, size, nextFreeSize, groupId, false);
mFreeSize = 0;
- JSULink<JKRAramBlock>* next = mBlockLink.getNext();
- JSUList<JKRAramBlock>* list = mBlockLink.getSupervisor();
- list->insert(next, &block->mBlockLink);
+ mBlockLink.getSupervisor()->insert(mBlockLink.getNext(), &block->mBlockLink);
return block;
}
JKRAramBlock* JKRAramBlock::allocTail(u32 size, u8 groupId, JKRAramHeap* aramHeap) {
- u32 freeSize = mFreeSize;
- u32 address = mAddress;
- u32 usedSize = mSize;
- u32 endAddress = address + usedSize + freeSize;
- u32 tailAddress = endAddress - size;
+ u32 tailAddress = mAddress + mSize + mFreeSize - size;
JKRAramBlock* block =
new (aramHeap->getMgrHeap(), 0) JKRAramBlock(tailAddress, size, 0, groupId, true);
mFreeSize -= size;
- JSULink<JKRAramBlock>* next = mBlockLink.getNext();
- JSUList<JKRAramBlock>* list = mBlockLink.getSupervisor();
- list->insert(next, &block->mBlockLink);
+ mBlockLink.getSupervisor()->insert(mBlockLink.getNext(), &block->mBlockLink);
return block;
}