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 /include | |
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 'include')
-rw-r--r-- | include/libcamera/internal/v4l2_subdevice.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/libcamera/internal/v4l2_subdevice.h b/include/libcamera/internal/v4l2_subdevice.h index 02ee3e91..eb25fa2f 100644 --- a/include/libcamera/internal/v4l2_subdevice.h +++ b/include/libcamera/internal/v4l2_subdevice.h @@ -7,6 +7,7 @@ #ifndef __LIBCAMERA_INTERNAL_V4L2_SUBDEVICE_H__ #define __LIBCAMERA_INTERNAL_V4L2_SUBDEVICE_H__ +#include <memory> #include <string> #include <vector> @@ -60,8 +61,8 @@ public: int setFormat(unsigned int pad, V4L2SubdeviceFormat *format, Whence whence = ActiveFormat); - static V4L2Subdevice *fromEntityName(const MediaDevice *media, - const std::string &entity); + static std::unique_ptr<V4L2Subdevice> + fromEntityName(const MediaDevice *media, const std::string &entity); protected: std::string logPrefix() const override; |