diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp index 80b804d9013d8af5526f95c7e0f17e80c929cc2b..357ee344b6e11df9ceba82304f442e3b3878d16d 100644 --- a/src/frame/frame_base.cpp +++ b/src/frame/frame_base.cpp @@ -303,12 +303,13 @@ void FrameBase::link(TrajectoryBasePtr _trj_ptr) void FrameBase::setProblem(ProblemPtr _problem) { + assert(isKey() && "Trying to setProblem to a non keyframe"); + if (_problem == nullptr || _problem == this->getProblem()) return; NodeBase::setProblem(_problem); - if (this->isKey()) - registerNewStateBlocks(_problem); + registerNewStateBlocks(_problem); for (auto cap : capture_list_) cap->setProblem(_problem);