diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-02-12 21:48:10 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2019-02-14 05:31:23 +0100 |
commit | ddcd8ebb3de0d5938b59eb62b9cf2e5bc430d820 (patch) | |
tree | e74d7c79ad01d24ea5814f447757df1361e0a1d7 /src/libcamera/pipeline/vimc.cpp | |
parent | fea6dc9365c3793308e32f2cf73fafd94e144dd1 (diff) |
libcamera: device_enumerator: Remove move() on search() return
Remove the std::move() call on the shared_ptr<MediaDevice *> returned by
the search() method and remove the std::move() call on temporary return
value in pipeline handlers that use the method.
Thanks to copy elision, the regular constructor of the newly created
object is called, avoiding un-necessary copies.
Furthermore, the use of std::move() in the return and assignment
statements prevents the compiler from performing copy elision, forcing
it to generate two sequences of un-necessary calls to the class'
move constructor and destructor.
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/libcamera/pipeline/vimc.cpp')
-rw-r--r-- | src/libcamera/pipeline/vimc.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp index 543ff212..a93a7589 100644 --- a/src/libcamera/pipeline/vimc.cpp +++ b/src/libcamera/pipeline/vimc.cpp @@ -148,7 +148,7 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator) dm.add("RGB/YUV Input"); dm.add("Scaler"); - media_ = std::move(enumerator->search(dm)); + media_ = enumerator->search(dm); if (!media_) return false; |