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:25 +0200 |
commit | e638ffde530440ec3515f40aa75a414ea1100231 (patch) | |
tree | bb6b060908cd8b150d35ca59e643be4269f9f2e3 /src/libcamera/pipeline/ipu3/imgu.cpp | |
parent | ff2ee0174ca62ab4460adfe20049ed05f52615c5 (diff) |
libcamera: v4l2_device: Return a unique pointer from fromEntityName()
The fromEntityName() function returns a pointer to a newly allocated
V4L2Device 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/ipu3/imgu.cpp')
-rw-r--r-- | src/libcamera/pipeline/ipu3/imgu.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp b/src/libcamera/pipeline/ipu3/imgu.cpp index bfe9624c..5b1c0318 100644 --- a/src/libcamera/pipeline/ipu3/imgu.cpp +++ b/src/libcamera/pipeline/ipu3/imgu.cpp @@ -348,24 +348,22 @@ int ImgUDevice::init(MediaDevice *media, unsigned int index) if (ret) return ret; - input_.reset(V4L2VideoDevice::fromEntityName(media, name_ + " input")); + input_ = V4L2VideoDevice::fromEntityName(media, name_ + " input"); ret = input_->open(); if (ret) return ret; - output_.reset(V4L2VideoDevice::fromEntityName(media, - name_ + " output")); + output_ = V4L2VideoDevice::fromEntityName(media, name_ + " output"); ret = output_->open(); if (ret) return ret; - viewfinder_.reset(V4L2VideoDevice::fromEntityName(media, - name_ + " viewfinder")); + viewfinder_ = V4L2VideoDevice::fromEntityName(media, name_ + " viewfinder"); ret = viewfinder_->open(); if (ret) return ret; - stat_.reset(V4L2VideoDevice::fromEntityName(media, name_ + " 3a stat")); + stat_ = V4L2VideoDevice::fromEntityName(media, name_ + " 3a stat"); ret = stat_->open(); if (ret) return ret; |