libamera: pipeline: rkisp1: timeline: Fix compilation with gcc-[56]

With gcc 5 and 6, insertion in a std::multimap copies the pair passed as
an argument to the insert() method. As the mapped type is a non-copyable
std::unique_ptr<>, this fails to compile.

Compilation with newer gcc versions succeed due to support for C++-17
and the fix described in https://cplusplus.github.io/LWG/issue2354. To
support gcc 5 and 6, fix the issue by using std::multimap::emplace().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2019-10-11 17:14:40 +03:00
parent 8647991cd8
commit f3c53dbf53

View file

@ -123,7 +123,7 @@ void Timeline::scheduleAction(std::unique_ptr<FrameAction> action)
<< ", run now " << utils::time_point_to_string(now);
action->run();
} else {
actions_.insert({ deadline, std::move(action) });
actions_.emplace(deadline, std::move(action));
updateDeadline();
}
}