summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorHirokazu Honda <hiroh@chromium.org>2021-03-24 16:07:51 +0900
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-03-25 00:45:26 +0200
commit10518882f380e07deefa762f915344dd7d3ec87f (patch)
tree75a2e78b3de60ab5efbb13b3e4c2dbec4bc97fd2 /src/android
parent212f410c7c5cdacd18141d9b9234272fb55396d2 (diff)
android: CameraHalManager: Hold CameraManager with std::unique_ptr
CameraManager is owned by CameraHalManager. The ownership of the object is not shared with other classes. So CameraHalManager should manage CameraManager with std::unique_ptr. Signed-off-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/android')
-rw-r--r--src/android/camera_hal_manager.cpp15
-rw-r--r--src/android/camera_hal_manager.h2
2 files changed, 5 insertions, 12 deletions
diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
index 79c5169e..49bb359e 100644
--- a/src/android/camera_hal_manager.cpp
+++ b/src/android/camera_hal_manager.cpp
@@ -34,18 +34,12 @@ CameraHalManager::CameraHalManager()
{
}
-CameraHalManager::~CameraHalManager()
-{
- if (cameraManager_) {
- cameraManager_->stop();
- delete cameraManager_;
- cameraManager_ = nullptr;
- }
-}
+/* CameraManager calls stop() in the destructor. */
+CameraHalManager::~CameraHalManager() = default;
int CameraHalManager::init()
{
- cameraManager_ = new CameraManager();
+ cameraManager_ = std::make_unique<CameraManager>();
/* Support camera hotplug. */
cameraManager_->cameraAdded.connect(this, &CameraHalManager::cameraAdded);
@@ -55,8 +49,7 @@ int CameraHalManager::init()
if (ret) {
LOG(HAL, Error) << "Failed to start camera manager: "
<< strerror(-ret);
- delete cameraManager_;
- cameraManager_ = nullptr;
+ cameraManager_.reset();
return ret;
}
diff --git a/src/android/camera_hal_manager.h b/src/android/camera_hal_manager.h
index 3cf31f4e..d9bf2798 100644
--- a/src/android/camera_hal_manager.h
+++ b/src/android/camera_hal_manager.h
@@ -49,7 +49,7 @@ private:
CameraDevice *cameraDeviceFromHalId(unsigned int id);
- libcamera::CameraManager *cameraManager_;
+ std::unique_ptr<libcamera::CameraManager> cameraManager_;
const camera_module_callbacks_t *callbacks_;
std::vector<std::unique_ptr<CameraDevice>> cameras_;