Added missing asserts for seq.index() < capacity_ and unified their usage based on has_element(). #781
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In a highly specific situation the call to find() was found to be stuck in an infinite cycle as it never checked whether
probe_seq::index_
as accessed byseq.index()
exceededcapacity_
.This situation arose after a call to a faulty implementation of
std::memset
(using uClibc's v0.9.32.1 memset, ARM platform) inreset_ctrl()
which ended up setting the control block to0xffffff80 0xffffff80 ...
as opposed to0x80808080 0x80808080 ...
.The reordering of calls in
find_first_non_full()
is simply to prevent one extra, unnecessary traversal.