diff --git a/modules/camera/camera_linux.cpp b/modules/camera/camera_linux.cpp index 60217709af8..b774d1be355 100644 --- a/modules/camera/camera_linux.cpp +++ b/modules/camera/camera_linux.cpp @@ -52,6 +52,9 @@ void CameraLinux::_update_devices() { for (int i = feeds.size() - 1; i >= 0; i--) { Ref feed = (Ref)feeds[i]; + if (feed.is_null()) { + continue; + } String device_name = feed->get_device_name(); if (!_is_active(device_name)) { remove_feed(feed); @@ -84,6 +87,9 @@ void CameraLinux::_update_devices() { bool CameraLinux::_has_device(const String &p_device_name) { for (int i = 0; i < feeds.size(); i++) { Ref feed = (Ref)feeds[i]; + if (feed.is_null()) { + continue; + } if (feed->get_device_name() == p_device_name) { return true; } diff --git a/modules/camera/camera_macos.mm b/modules/camera/camera_macos.mm index bd718a0cb6c..d242444b0b5 100644 --- a/modules/camera/camera_macos.mm +++ b/modules/camera/camera_macos.mm @@ -323,6 +323,9 @@ void CameraMacOS::update_feeds() { // remove devices that are gone.. for (int i = feeds.size() - 1; i >= 0; i--) { Ref feed = (Ref)feeds[i]; + if (feed.is_null()) { + continue; + } if (![devices containsObject:feed->get_device()]) { // remove it from our array, this will also destroy it ;) @@ -334,6 +337,9 @@ void CameraMacOS::update_feeds() { bool found = false; for (int i = 0; i < feeds.size() && !found; i++) { Ref feed = (Ref)feeds[i]; + if (feed.is_null()) { + continue; + } if (feed->get_device() == device) { found = true; };