Browse Source

Fix invalid iterator access in Device.cpp / Instance.cpp

pull/539/head
Samuel Vargas 4 years ago committed by Vladimír Vondruš
parent
commit
390d3fc06f
  1. 2
      src/Magnum/Vk/Device.cpp
  2. 2
      src/Magnum/Vk/Instance.cpp

2
src/Magnum/Vk/Device.cpp

@ -861,7 +861,7 @@ template<class T> void Device::initializeExtensions(const Containers::ArrayView<
const auto found = std::lower_bound(knownExtensions.begin(), knownExtensions.end(), extension, [](const Extension& a, const T& b) { const auto found = std::lower_bound(knownExtensions.begin(), knownExtensions.end(), extension, [](const Extension& a, const T& b) {
return a.string() < static_cast<const Containers::StringView&>(b); return a.string() < static_cast<const Containers::StringView&>(b);
}); });
if(found->string() != extension) continue; if(found == knownExtensions.end() || found->string() != extension) continue;
_enabledExtensions.set(found->index(), true); _enabledExtensions.set(found->index(), true);
} }
} }

2
src/Magnum/Vk/Instance.cpp

@ -358,7 +358,7 @@ template<class T> void Instance::initializeExtensions(const Containers::ArrayVie
const auto found = std::lower_bound(knownExtensions.begin(), knownExtensions.end(), extension, [](const InstanceExtension& a, const T& b) { const auto found = std::lower_bound(knownExtensions.begin(), knownExtensions.end(), extension, [](const InstanceExtension& a, const T& b) {
return a.string() < static_cast<const Containers::StringView&>(b); return a.string() < static_cast<const Containers::StringView&>(b);
}); });
if(found->string() != extension) continue; if(found == knownExtensions.end() || found->string() != extension) continue;
_extensionStatus.set(found->index(), true); _extensionStatus.set(found->index(), true);
} }
} }

Loading…
Cancel
Save