Skip to content

Commit bf42d3a

Browse files
Merge pull request #10 from DevShiftTeam/development
When freeing first block there was an access to undefined address fix #9
2 parents 85b80df + 5047c69 commit bf42d3a

1 file changed

Lines changed: 2 additions & 3 deletions

File tree

MemoryPool.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,8 @@ void CPPShift::Memory::MemoryPoolManager::free(void* unit_pointer_start)
129129

130130
// If block offset is 0 remove block if not the only one left
131131
if (mp->currentBlock != mp->firstBlock && (block->offset == 0 || block->numberOfAllocated == block->numberOfDeleted)) {
132-
SMemoryBlockHeader* prev = block->prev;
133-
SMemoryBlockHeader* next = block->next;
134-
prev->next = next;
132+
if (block == mp->firstBlock) mp->firstBlock = block->next;
133+
else block->prev->next = block->next;
135134
if (block == mp->currentBlock) mp->currentBlock = block->prev;
136135
std::free(block);
137136
}

0 commit comments

Comments
 (0)