libcamera: pipeline: Manage resources with std::unique_ptr<>

Replace manual resource destruction with std::unique_ptr<> where
applicable. This removes the need for several destructors.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2020-12-09 13:13:38 +02:00
parent 1c2b54a017
commit 3129fcae43
7 changed files with 22 additions and 51 deletions
+3 -8
View File
@@ -42,20 +42,15 @@ class VimcCameraData : public CameraData
{
public:
VimcCameraData(PipelineHandler *pipe, MediaDevice *media)
: CameraData(pipe), media_(media), sensor_(nullptr)
: CameraData(pipe), media_(media)
{
}
~VimcCameraData()
{
delete sensor_;
}
int init();
void bufferReady(FrameBuffer *buffer);
MediaDevice *media_;
CameraSensor *sensor_;
std::unique_ptr<CameraSensor> sensor_;
std::unique_ptr<V4L2Subdevice> debayer_;
std::unique_ptr<V4L2Subdevice> scaler_;
std::unique_ptr<V4L2VideoDevice> video_;
@@ -461,7 +456,7 @@ int VimcCameraData::init()
return ret;
/* Create and open the camera sensor, debayer, scaler and video device. */
sensor_ = new CameraSensor(media_->getEntityByName("Sensor B"));
sensor_ = std::make_unique<CameraSensor>(media_->getEntityByName("Sensor B"));
ret = sensor_->init();
if (ret)
return ret;