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_; } /**