Merge "Fix for linker allocator"
diff --git a/linker/linker_allocator.cpp b/linker/linker_allocator.cpp
index 60ce1ea..5738090 100644
--- a/linker/linker_allocator.cpp
+++ b/linker/linker_allocator.cpp
@@ -117,8 +117,8 @@
}
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 e3a91c5..0ed8252 100644
--- a/linker/tests/linker_allocator_test.cpp
+++ b/linker/tests/linker_allocator_test.cpp
@@ -96,6 +96,9 @@
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() {