From 4f32a3b408430f9bbbac260e8aedd1b90244639d Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Fri, 25 Jan 2019 17:59:29 +0100 Subject: libcamera: ipu3: Re-work camera data registration Re-work camera data registration to create the cameraData pointer as unique_ptr<> and make clear its ownership model. Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/libcamera/pipeline/ipu3/ipu3.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 64f639fc..80f4a7bf 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -210,18 +210,16 @@ void PipelineHandlerIPU3::registerCameras() * registered. The 'camera' shared pointer goes out of scope * and deletes the Camera it manages. */ - V4L2Device *videoDev = createVideoDevice(id); - if (!videoDev) { + std::unique_ptr data = utils::make_unique(); + data->dev_ = createVideoDevice(id); + if (!data->dev_) { LOG(IPU3, Error) << "Failed to register camera[" << numCameras << "] \"" << cameraName << "\""; continue; } - IPU3CameraData *data = new IPU3CameraData(); - data->dev_ = videoDev; - setCameraData(camera.get(), - std::move(std::unique_ptr(data))); + setCameraData(camera.get(), std::move(data)); registerCamera(std::move(camera)); LOG(IPU3, Info) -- cgit v1.2.1