From 06d16fd80557996f20930e09d13a26cf7eaf6b52 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Tue, 2 Dec 2025 15:03:13 +0100 Subject: [PATCH] libcamera: request: Make metadata_ a class instance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The metadata_ member variable is a pointer, for no specific reason. Make it an instance and simplify the class constructor and destructor. Suggested-by: Barnabás Pőcze Signed-off-by: Jacopo Mondi Reviewed-by: Barnabás Pőcze Reviewed-by: Daniel Scally --- include/libcamera/internal/request.h | 4 ++-- src/libcamera/request.cpp | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/libcamera/internal/request.h b/include/libcamera/internal/request.h index 643f67ca..693097ee 100644 --- a/include/libcamera/internal/request.h +++ b/include/libcamera/internal/request.h @@ -36,7 +36,7 @@ public: Camera *camera() const { return camera_; } bool hasPendingBuffers() const; - ControlList &metadata() { return *metadata_; } + ControlList &metadata() { return metadata_; } bool completeBuffer(FrameBuffer *buffer); void complete(); @@ -63,7 +63,7 @@ private: std::unordered_set pending_; std::map notifiers_; std::unique_ptr timer_; - ControlList *metadata_; + ControlList metadata_; }; } /* namespace libcamera */ diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp index a661b2f5..0d6c4a0c 100644 --- a/src/libcamera/request.cpp +++ b/src/libcamera/request.cpp @@ -53,20 +53,17 @@ LOG_DEFINE_CATEGORY(Request) /** * \brief Create a Request::Private * \param camera The Camera that creates the request + * + * \todo Add a validator for metadata controls. */ Request::Private::Private(Camera *camera) - : camera_(camera), cancelled_(false) + : camera_(camera), cancelled_(false), metadata_(controls::controls) { - /** - * \todo Add a validator for metadata controls. - */ - metadata_ = new ControlList(controls::controls); } Request::Private::~Private() { doCancelRequest(); - delete metadata_; } /** @@ -410,7 +407,7 @@ void Request::reuse(ReuseFlag flags) status_ = RequestPending; controls_->clear(); - _d()->metadata_->clear(); + _d()->metadata_.clear(); } /** @@ -435,7 +432,7 @@ void Request::reuse(ReuseFlag flags) */ const ControlList &Request::metadata() const { - return *_d()->metadata_; + return _d()->metadata_; } /**