From 9ab024f7c27d9b6b3ab433502eab02d4a29a3da4 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 21 Mar 2020 19:56:35 +0200 Subject: libcamera: device_enumerator: Convey device ownership through unique_ptr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace usage of shared_ptr with unique_ptr to convey media device ownership internally in the enumerators when creating the media device. Once a media device has all its dependencies met, it is converted to a shared_ptr to keep the external API unchanged. Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Reviewed-by: Kieran Bingham --- src/libcamera/device_enumerator_sysfs.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/libcamera/device_enumerator_sysfs.cpp') diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp index 197ca235..3446db59 100644 --- a/src/libcamera/device_enumerator_sysfs.cpp +++ b/src/libcamera/device_enumerator_sysfs.cpp @@ -72,11 +72,11 @@ int DeviceEnumeratorSysfs::enumerate() continue; } - std::shared_ptr media = createDevice(devnode); + std::unique_ptr media = createDevice(devnode); if (!media) continue; - if (populateMediaDevice(media) < 0) { + if (populateMediaDevice(media.get()) < 0) { LOG(DeviceEnumerator, Warning) << "Failed to populate media device " << media->deviceNode() @@ -84,7 +84,7 @@ int DeviceEnumeratorSysfs::enumerate() continue; } - addDevice(media); + addDevice(std::move(media)); } closedir(dir); @@ -92,7 +92,7 @@ int DeviceEnumeratorSysfs::enumerate() return 0; } -int DeviceEnumeratorSysfs::populateMediaDevice(const std::shared_ptr &media) +int DeviceEnumeratorSysfs::populateMediaDevice(MediaDevice *media) { /* Associate entities to device node paths. */ for (MediaEntity *entity : media->entities()) { -- cgit v1.2.1