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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Oct 11 16:30:27 CEST 2019


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>
---
 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



More information about the libcamera-devel mailing list