libcamera: request: Make controls_ a class instance

The controls_ member variable is a pointer, for no specific reason.
Make it an instance and simplify the class constructor and destructor.

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:08:59 +01:00
parent 06d16fd805
commit b7ed763f0d
2 changed files with 4 additions and 7 deletions

View File

@@ -49,7 +49,7 @@ public:
void reuse(ReuseFlag flags = Default);
ControlList &controls() { return *controls_; }
ControlList &controls() { return controls_; }
const ControlList &metadata() const;
const BufferMap &buffers() const { return bufferMap_; }
int addBuffer(const Stream *stream, FrameBuffer *buffer,
@@ -67,7 +67,7 @@ public:
private:
LIBCAMERA_DISABLE_COPY(Request)
ControlList *controls_;
ControlList controls_;
BufferMap bufferMap_;
const uint64_t cookie_;

View File

@@ -362,11 +362,9 @@ void Request::Private::timeout()
*/
Request::Request(Camera *camera, uint64_t cookie)
: Extensible(std::make_unique<Private>(camera)),
controls_(camera->controls(), camera->_d()->validator()),
cookie_(cookie), status_(RequestPending)
{
controls_ = new ControlList(camera->controls(),
camera->_d()->validator());
LIBCAMERA_TRACEPOINT(request_construct, this);
LOG(Request, Debug) << "Created request - cookie: " << cookie_;
@@ -375,7 +373,6 @@ Request::Request(Camera *camera, uint64_t cookie)
Request::~Request()
{
LIBCAMERA_TRACEPOINT(request_destroy, this);
delete controls_;
}
/**
@@ -406,7 +403,7 @@ void Request::reuse(ReuseFlag flags)
status_ = RequestPending;
controls_->clear();
controls_.clear();
_d()->metadata_.clear();
}