[libcamera-devel,v2,4/8] android: CameraDevice: Take shared_ptr in constructor
diff mbox series

Message ID 20210324070757.3530377-5-hiroh@chromium.org
State Accepted
Headers show
Series
  • Improve pointer types in android HAL adaptation layer
Related show

Commit Message

Hirokazu Honda March 24, 2021, 7:07 a.m. UTC
CameraDevice takes the ownership of Camera. Therefore,
shared_ptr would rather be used than const shared_ptr&.

Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/android/camera_device.cpp | 12 +++++++-----
 src/android/camera_device.h   |  4 ++--
 2 files changed, 9 insertions(+), 7 deletions(-)

--
2.31.0.291.g576ba9dcdaf-goog

Comments

Jacopo Mondi March 25, 2021, 8:40 a.m. UTC | #1
Hi Hiro

On Wed, Mar 24, 2021 at 04:07:53PM +0900, Hirokazu Honda wrote:
> CameraDevice takes the ownership of Camera. Therefore,
> shared_ptr would rather be used than const shared_ptr&.
>
> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

> ---
>  src/android/camera_device.cpp | 12 +++++++-----
>  src/android/camera_device.h   |  4 ++--
>  2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index d0955de7..c0630e53 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -312,9 +312,10 @@ CameraDevice::Camera3RequestDescriptor::~Camera3RequestDescriptor()
>   * back to the framework using the designated callbacks.
>   */
>
> -CameraDevice::CameraDevice(unsigned int id, const std::shared_ptr<Camera> &camera)
> -	: id_(id), running_(false), camera_(camera), staticMetadata_(nullptr),
> -	  facing_(CAMERA_FACING_FRONT), orientation_(0)
> +CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> camera)
> +	: id_(id), running_(false), camera_(std::move(camera)),
> +	  staticMetadata_(nullptr), facing_(CAMERA_FACING_FRONT),
> +	  orientation_(0)
>  {
>  	camera_->requestCompleted.connect(this, &CameraDevice::requestComplete);
>
> @@ -351,9 +352,10 @@ CameraDevice::~CameraDevice()
>  }
>
>  std::unique_ptr<CameraDevice> CameraDevice::create(unsigned int id,
> -						   const std::shared_ptr<Camera> &cam)
> +						   std::shared_ptr<Camera> cam)
>  {
> -	return std::unique_ptr<CameraDevice>(new CameraDevice(id, cam));
> +	return std::unique_ptr<CameraDevice>(
> +		new CameraDevice(id, std::move(cam)));
>  }
>
>  /*
> diff --git a/src/android/camera_device.h b/src/android/camera_device.h
> index 8be7f305..555b33e7 100644
> --- a/src/android/camera_device.h
> +++ b/src/android/camera_device.h
> @@ -33,7 +33,7 @@ class CameraDevice : protected libcamera::Loggable
>  {
>  public:
>  	static std::unique_ptr<CameraDevice> create(unsigned int id,
> -						    const std::shared_ptr<libcamera::Camera> &cam);
> +						    std::shared_ptr<libcamera::Camera> cam);
>  	~CameraDevice();
>
>  	int initialize();
> @@ -66,7 +66,7 @@ protected:
>  	std::string logPrefix() const override;
>
>  private:
> -	CameraDevice(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera);
> +	CameraDevice(unsigned int id, std::shared_ptr<libcamera::Camera> camera);
>
>  	struct Camera3RequestDescriptor {
>  		Camera3RequestDescriptor(libcamera::Camera *camera,
> --
> 2.31.0.291.g576ba9dcdaf-goog
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch
diff mbox series

diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index d0955de7..c0630e53 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -312,9 +312,10 @@  CameraDevice::Camera3RequestDescriptor::~Camera3RequestDescriptor()
  * back to the framework using the designated callbacks.
  */

-CameraDevice::CameraDevice(unsigned int id, const std::shared_ptr<Camera> &camera)
-	: id_(id), running_(false), camera_(camera), staticMetadata_(nullptr),
-	  facing_(CAMERA_FACING_FRONT), orientation_(0)
+CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> camera)
+	: id_(id), running_(false), camera_(std::move(camera)),
+	  staticMetadata_(nullptr), facing_(CAMERA_FACING_FRONT),
+	  orientation_(0)
 {
 	camera_->requestCompleted.connect(this, &CameraDevice::requestComplete);

@@ -351,9 +352,10 @@  CameraDevice::~CameraDevice()
 }

 std::unique_ptr<CameraDevice> CameraDevice::create(unsigned int id,
-						   const std::shared_ptr<Camera> &cam)
+						   std::shared_ptr<Camera> cam)
 {
-	return std::unique_ptr<CameraDevice>(new CameraDevice(id, cam));
+	return std::unique_ptr<CameraDevice>(
+		new CameraDevice(id, std::move(cam)));
 }

 /*
diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 8be7f305..555b33e7 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -33,7 +33,7 @@  class CameraDevice : protected libcamera::Loggable
 {
 public:
 	static std::unique_ptr<CameraDevice> create(unsigned int id,
-						    const std::shared_ptr<libcamera::Camera> &cam);
+						    std::shared_ptr<libcamera::Camera> cam);
 	~CameraDevice();

 	int initialize();
@@ -66,7 +66,7 @@  protected:
 	std::string logPrefix() const override;

 private:
-	CameraDevice(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera);
+	CameraDevice(unsigned int id, std::shared_ptr<libcamera::Camera> camera);

 	struct Camera3RequestDescriptor {
 		Camera3RequestDescriptor(libcamera::Camera *camera,