diff options
Diffstat (limited to 'src/common/address_space.inc')
| -rw-r--r-- | src/common/address_space.inc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/address_space.inc b/src/common/address_space.inc index 2195dabd5..1ee82df53 100644 --- a/src/common/address_space.inc +++ b/src/common/address_space.inc | |||
| @@ -72,7 +72,7 @@ MAP_MEMBER(void)::MapLocked(VaType virt, PaType phys, VaType size, ExtraBlockInf | |||
| 72 | } | 72 | } |
| 73 | }()}; | 73 | }()}; |
| 74 | 74 | ||
| 75 | if (block_end_predecessor->virt >= virt) { | 75 | if (block_end_predecessor != blocks.begin() && block_end_predecessor->virt >= virt) { |
| 76 | // If this block's start would be overlapped by the map then reuse it as a tail | 76 | // If this block's start would be overlapped by the map then reuse it as a tail |
| 77 | // block | 77 | // block |
| 78 | block_end_predecessor->virt = virt_end; | 78 | block_end_predecessor->virt = virt_end; |
| @@ -336,7 +336,7 @@ ALLOC_MEMBER(VaType)::Allocate(VaType size) { | |||
| 336 | ASSERT_MSG(false, "Unexpected allocator state!"); | 336 | ASSERT_MSG(false, "Unexpected allocator state!"); |
| 337 | } | 337 | } |
| 338 | 338 | ||
| 339 | auto search_predecessor{this->blocks.begin()}; | 339 | auto search_predecessor{std::next(this->blocks.begin())}; |
| 340 | auto search_successor{std::next(search_predecessor)}; | 340 | auto search_successor{std::next(search_predecessor)}; |
| 341 | 341 | ||
| 342 | while (search_successor != this->blocks.end() && | 342 | while (search_successor != this->blocks.end() && |