From 033cac7f6df5a3bd671eccf03f57103897f11c97 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 6 Jul 2021 07:37:14 +0300 Subject: cam: Use std::unique_ptr<> to manage CameraManager Store the CameraManager instance in a unique_ptr to simplify memory management and avoid leaks. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- src/cam/main.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/cam/main.cpp b/src/cam/main.cpp index 8ed5e841..2ef26353 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -25,7 +25,6 @@ class CamApp { public: CamApp(); - ~CamApp(); static CamApp *instance(); @@ -49,8 +48,8 @@ private: static CamApp *app_; OptionsParser::Options options_; - CameraManager *cm_; + std::unique_ptr cm_; std::unique_ptr session_; EventLoop loop_; @@ -59,16 +58,10 @@ private: CamApp *CamApp::app_ = nullptr; CamApp::CamApp() - : cm_(nullptr) { CamApp::app_ = this; } -CamApp::~CamApp() -{ - delete cm_; -} - CamApp *CamApp::instance() { return CamApp::app_; @@ -82,7 +75,7 @@ int CamApp::init(int argc, char **argv) if (ret < 0) return ret; - cm_ = new CameraManager(); + cm_ = std::make_unique(); ret = cm_->start(); if (ret) { @@ -92,7 +85,7 @@ int CamApp::init(int argc, char **argv) } if (options_.isSet(OptCamera)) { - session_ = std::make_unique(cm_, options_); + session_ = std::make_unique(cm_.get(), options_); if (!session_->isValid()) { std::cout << "Failed to create camera session" << std::endl; cleanup(); -- cgit v1.2.1