libcamera: request: Make metadata_ a class instance

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 <barnabas.pocze@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
This commit is contained in:
Jacopo Mondi
2025-12-02 15:03:13 +01:00
parent dce2ef36f2
commit 06d16fd805
2 changed files with 7 additions and 10 deletions

View File

@@ -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<FrameBuffer *> pending_;
std::map<FrameBuffer *, EventNotifier> notifiers_;
std::unique_ptr<Timer> timer_;
ControlList *metadata_;
ControlList metadata_;
};
} /* namespace libcamera */

View File

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