[libcamera-devel] [PATCH] libamera: pipeline: rkisp1: timeline: Fix compilation with gcc-[56]
Niklas Söderlund
niklas.soderlund at ragnatech.se
Fri Oct 11 17:46:33 CEST 2019
Hi Laurent,
Thanks for spotting this.
On 2019-10-11 17:30:27 +0300, Laurent Pinchart wrote:
> 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 at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/libcamera/pipeline/rkisp1/timeline.cpp | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libcamera/pipeline/rkisp1/timeline.cpp b/src/libcamera/pipeline/rkisp1/timeline.cpp
> index b98a16689fa9..f6c6434d7b53 100644
> --- a/src/libcamera/pipeline/rkisp1/timeline.cpp
> +++ b/src/libcamera/pipeline/rkisp1/timeline.cpp
> @@ -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();
> }
> }
> --
> Regards,
>
> Laurent Pinchart
>
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list