mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-19 10:25:05 +03:00
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 <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
8519df23a9
commit
033cac7f6d
1 changed files with 3 additions and 10 deletions
|
@ -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<CameraManager> cm_;
|
||||
std::unique_ptr<CameraSession> 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<CameraManager>();
|
||||
|
||||
ret = cm_->start();
|
||||
if (ret) {
|
||||
|
@ -92,7 +85,7 @@ int CamApp::init(int argc, char **argv)
|
|||
}
|
||||
|
||||
if (options_.isSet(OptCamera)) {
|
||||
session_ = std::make_unique<CameraSession>(cm_, options_);
|
||||
session_ = std::make_unique<CameraSession>(cm_.get(), options_);
|
||||
if (!session_->isValid()) {
|
||||
std::cout << "Failed to create camera session" << std::endl;
|
||||
cleanup();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue