Fix copy-constructor and copy-assignment operator in ContactPhaseList
class
#295
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.
This Implements the copy-constructor and copy-assignment operator for the
ContactPhaseList
class.ContactPhaseList
has an attribute calledm_phases
https://github.com/dic-iit/bipedal-locomotion-framework/blob/d916b56f71eca03a7d1e519e4f13d785665b79ed/src/Contacts/include/BipedalLocomotion/Contacts/ContactPhaseList.h#L37
where
ContactPhase
has astd::unordered_map
of active contacts during a given phase.https://github.com/dic-iit/bipedal-locomotion-framework/blob/d916b56f71eca03a7d1e519e4f13d785665b79ed/src/Contacts/include/BipedalLocomotion/Contacts/ContactPhase.h#L37-L40
Accordingly to the
ContactPhaseList
documentationhttps://github.com/dic-iit/bipedal-locomotion-framework/blob/d916b56f71eca03a7d1e519e4f13d785665b79ed/src/Contacts/include/BipedalLocomotion/Contacts/ContactPhaseList.h#L28-L31
all the iterators stored in
this->m_phases
should refer tothis->m_contactList
.However when the default copy-constructor/copy-assignment operator are colled the content of
other.m_phases
is copied intothis->m_phases
and consequentially the iterators stored inthis->m_phases
will refer toother.m_contactLists
.I wrote an ad-hoc test to spot the bug. The test fails in Ubuntu 20.04 if Valgrind is used. Please check here.
In order to satisfy the rule of five the move-constructor move-assignment operator and destructor member functions must be defined.
I also introduced
TextLogging
inContactPhaseList
Thank you @prashanthr05 for helping me in debugging 😃