Message ID | 20190818011329.14499-10-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Delegated to: | Laurent Pinchart |
Headers | show |
Series |
|
Related | show |
Hi Laurent, On Sun, Aug 18, 2019 at 04:13:24AM +0300, Laurent Pinchart wrote: > The CameraDevice is constructed with a Camera instance passed through a It's actually the CameraProxy that receives the camera parameter by value to then pass it to the CameraDevice constructor, which already takes a reference. Apart from this Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Thanks j > shared pointer. It makes an internal copy of the pointer, which can be > passed by const reference instead of value. This optimises the > constructor slightly. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > src/android/camera_device.cpp | 2 +- > src/android/camera_device.h | 2 +- > src/android/camera_proxy.cpp | 2 +- > src/android/camera_proxy.h | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp > index 999c51e6ba4a..9acfed694abc 100644 > --- a/src/android/camera_device.cpp > +++ b/src/android/camera_device.cpp > @@ -49,7 +49,7 @@ CameraDevice::Camera3RequestDescriptor::~Camera3RequestDescriptor() > * to the framework using the designated callbacks. > */ > > -CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> &camera) > +CameraDevice::CameraDevice(unsigned int id, const std::shared_ptr<Camera> &camera) > : running_(false), camera_(camera), staticMetadata_(nullptr), > requestTemplate_(nullptr) > { > diff --git a/src/android/camera_device.h b/src/android/camera_device.h > index 4d834ceb08a5..7897ba9dc5c7 100644 > --- a/src/android/camera_device.h > +++ b/src/android/camera_device.h > @@ -31,7 +31,7 @@ class ThreadRpc; > class CameraDevice : public libcamera::Object > { > public: > - CameraDevice(unsigned int id, std::shared_ptr<libcamera::Camera> &camera); > + CameraDevice(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera); > ~CameraDevice(); > > void call(ThreadRpc *rpc); > diff --git a/src/android/camera_proxy.cpp b/src/android/camera_proxy.cpp > index 3eb2f9fbcffb..4f5c0a024903 100644 > --- a/src/android/camera_proxy.cpp > +++ b/src/android/camera_proxy.cpp > @@ -113,7 +113,7 @@ static camera3_device_ops hal_dev_ops = { > .reserved = { nullptr }, > }; > > -CameraProxy::CameraProxy(unsigned int id, std::shared_ptr<Camera> camera) > +CameraProxy::CameraProxy(unsigned int id, const std::shared_ptr<Camera> &camera) > : id_(id) > { > cameraDevice_ = new CameraDevice(id, camera); > diff --git a/src/android/camera_proxy.h b/src/android/camera_proxy.h > index da63bfa79fc9..7940eac4e376 100644 > --- a/src/android/camera_proxy.h > +++ b/src/android/camera_proxy.h > @@ -19,7 +19,7 @@ class ThreadRpc; > class CameraProxy > { > public: > - CameraProxy(unsigned int id, std::shared_ptr<libcamera::Camera> camera); > + CameraProxy(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera); > ~CameraProxy(); > > int open(const hw_module_t *hardwareModule); > -- > Regards, > > Laurent Pinchart > > _______________________________________________ > libcamera-devel mailing list > libcamera-devel@lists.libcamera.org > https://lists.libcamera.org/listinfo/libcamera-devel
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 999c51e6ba4a..9acfed694abc 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -49,7 +49,7 @@ CameraDevice::Camera3RequestDescriptor::~Camera3RequestDescriptor() * to the framework using the designated callbacks. */ -CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> &camera) +CameraDevice::CameraDevice(unsigned int id, const std::shared_ptr<Camera> &camera) : running_(false), camera_(camera), staticMetadata_(nullptr), requestTemplate_(nullptr) { diff --git a/src/android/camera_device.h b/src/android/camera_device.h index 4d834ceb08a5..7897ba9dc5c7 100644 --- a/src/android/camera_device.h +++ b/src/android/camera_device.h @@ -31,7 +31,7 @@ class ThreadRpc; class CameraDevice : public libcamera::Object { public: - CameraDevice(unsigned int id, std::shared_ptr<libcamera::Camera> &camera); + CameraDevice(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera); ~CameraDevice(); void call(ThreadRpc *rpc); diff --git a/src/android/camera_proxy.cpp b/src/android/camera_proxy.cpp index 3eb2f9fbcffb..4f5c0a024903 100644 --- a/src/android/camera_proxy.cpp +++ b/src/android/camera_proxy.cpp @@ -113,7 +113,7 @@ static camera3_device_ops hal_dev_ops = { .reserved = { nullptr }, }; -CameraProxy::CameraProxy(unsigned int id, std::shared_ptr<Camera> camera) +CameraProxy::CameraProxy(unsigned int id, const std::shared_ptr<Camera> &camera) : id_(id) { cameraDevice_ = new CameraDevice(id, camera); diff --git a/src/android/camera_proxy.h b/src/android/camera_proxy.h index da63bfa79fc9..7940eac4e376 100644 --- a/src/android/camera_proxy.h +++ b/src/android/camera_proxy.h @@ -19,7 +19,7 @@ class ThreadRpc; class CameraProxy { public: - CameraProxy(unsigned int id, std::shared_ptr<libcamera::Camera> camera); + CameraProxy(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera); ~CameraProxy(); int open(const hw_module_t *hardwareModule);
The CameraDevice is constructed with a Camera instance passed through a shared pointer. It makes an internal copy of the pointer, which can be passed by const reference instead of value. This optimises the constructor slightly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- src/android/camera_device.cpp | 2 +- src/android/camera_device.h | 2 +- src/android/camera_proxy.cpp | 2 +- src/android/camera_proxy.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)