diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-12-08 03:40:25 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-12-09 11:26:13 +0200 |
commit | ff2ee0174ca62ab4460adfe20049ed05f52615c5 (patch) | |
tree | 292907ad2f2cc3252d9027822a7024dce6a59021 /src/libcamera/pipeline/rkisp1/rkisp1.cpp | |
parent | 2795f333fce5f43a4239d8d40d34dde4e5caa6ca (diff) |
libcamera: v4l2_subdevice: Return a unique pointer from fromEntityName()
The fromEntityName() function returns a pointer to a newly allocated
V4L2Subdevice instance, which must be deleted by the caller. This opens
the door to memory leaks. Return a unique pointer instead, which conveys
the API semantics better than a sentence in the documentation.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/libcamera/pipeline/rkisp1/rkisp1.cpp')
-rw-r--r-- | src/libcamera/pipeline/rkisp1/rkisp1.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index eaa10f9f..c34a30a9 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -217,7 +217,7 @@ private: int freeBuffers(Camera *camera); MediaDevice *media_; - V4L2Subdevice *isp_; + std::unique_ptr<V4L2Subdevice> isp_; V4L2VideoDevice *param_; V4L2VideoDevice *stat_; @@ -599,8 +599,7 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate() } PipelineHandlerRkISP1::PipelineHandlerRkISP1(CameraManager *manager) - : PipelineHandler(manager), isp_(nullptr), param_(nullptr), - stat_(nullptr) + : PipelineHandler(manager), param_(nullptr), stat_(nullptr) { } @@ -608,7 +607,6 @@ PipelineHandlerRkISP1::~PipelineHandlerRkISP1() { delete param_; delete stat_; - delete isp_; } /* ----------------------------------------------------------------------------- |