summaryrefslogtreecommitdiff
path: root/include/libcamera/internal/v4l2_subdevice.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-12-08 03:40:25 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-12-09 11:26:13 +0200
commitff2ee0174ca62ab4460adfe20049ed05f52615c5 (patch)
tree292907ad2f2cc3252d9027822a7024dce6a59021 /include/libcamera/internal/v4l2_subdevice.h
parent2795f333fce5f43a4239d8d40d34dde4e5caa6ca (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/libcamera/internal/v4l2_subdevice.h')
-rw-r--r--include/libcamera/internal/v4l2_subdevice.h5
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;