Skip to content

Commit dff0474

Browse files
committed
Fix non-critical bug in small_free_memory_list::find_chunk()
It didn't actually search into both directions as advertised. This has no significant impact on the profiling results but should be fixed anyways.
1 parent 6c09f59 commit dff0474

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/detail/small_free_list.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,10 @@ chunk* small_free_memory_list::find_chunk_impl(std::size_t n) FOONATHAN_NOEXCEPT
344344
return c;
345345

346346
cur_forward = cur_forward->next;
347-
cur_backward = cur_backward->next;
348-
} while (cur_forward != cur_backward);
347+
cur_backward = cur_backward->prev;
348+
FOONATHAN_MEMORY_ASSERT(cur_forward != alloc_chunk_);
349+
FOONATHAN_MEMORY_ASSERT(cur_backward != alloc_chunk_);
350+
} while (true);
349351
FOONATHAN_MEMORY_UNREACHABLE("there is memory available somewhere...");
350352
return nullptr;
351353
}

0 commit comments

Comments
 (0)