aboutsummaryrefslogtreecommitdiffstats
path: root/linker
diff options
context:
space:
mode:
Diffstat (limited to 'linker')
-rw-r--r--linker/linker_allocator.cpp2
-rw-r--r--linker/tests/linker_allocator_test.cpp3
2 files changed, 4 insertions, 1 deletions
diff --git a/linker/linker_allocator.cpp b/linker/linker_allocator.cpp
index 60ce1ea47..573809075 100644
--- a/linker/linker_allocator.cpp
+++ b/linker/linker_allocator.cpp
@@ -117,8 +117,8 @@ LinkerAllocatorPage* LinkerBlockAllocator::find_page(void* block) {
}
LinkerAllocatorPage* page = page_list_;
- const uint8_t* page_ptr = reinterpret_cast<const uint8_t*>(page);
while (page != nullptr) {
+ const uint8_t* page_ptr = reinterpret_cast<const uint8_t*>(page);
if (block >= (page_ptr + sizeof(page->next)) && block < (page_ptr + PAGE_SIZE)) {
return page;
}
diff --git a/linker/tests/linker_allocator_test.cpp b/linker/tests/linker_allocator_test.cpp
index e3a91c59f..0ed82528f 100644
--- a/linker/tests/linker_allocator_test.cpp
+++ b/linker/tests/linker_allocator_test.cpp
@@ -96,6 +96,9 @@ TEST(linker_allocator, test_larger) {
ASSERT_TRUE(allocator.alloc() != nullptr);
}
+ test_struct_larger* ptr_to_free = allocator.alloc();
+ ASSERT_TRUE(ptr_to_free != nullptr);
+ allocator.free(ptr1);
}
static void protect_all() {