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>
This commit is contained in:
Hirokazu Honda 2021-03-24 16:07:51 +09:00 committed by Laurent Pinchart
parent 212f410c7c
commit 10518882f3
2 changed files with 5 additions and 12 deletions

View file

@ -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;
}

View file

@ -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_;