Browse Source

Audio,GL: shorter way to avoid crashes on nullptr C strings.

This is actually to avoid an ambigous overload with Corrade's new
StringView APIs, but doesn't hurt to commit that anyway.
pull/454/head
Vladimír Vondruš 6 years ago
parent
commit
609275f993
  1. 14
      src/Magnum/Audio/Context.cpp
  2. 3
      src/Magnum/GL/Context.cpp

14
src/Magnum/Audio/Context.cpp

@ -333,15 +333,11 @@ std::vector<std::string> Context::extensionStrings() const {
std::vector<std::string> extensions;
/* Don't crash when alGetString() returns nullptr */
const char* alExts = reinterpret_cast<const char*>(alGetString(AL_EXTENSIONS));
if(alExts) extensions = Utility::String::splitWithoutEmptyParts(alExts, ' ');
/* Add ALC extensions aswell */
const char* alcExts = reinterpret_cast<const char*>(alcGetString(_device, ALC_EXTENSIONS));
if(alcExts) {
auto splitAlcExts = Utility::String::splitWithoutEmptyParts(alcExts, ' ');
extensions.insert(extensions.end(), splitAlcExts.begin(), splitAlcExts.end());
}
extensions = Utility::String::splitWithoutEmptyParts(Utility::String::fromArray(reinterpret_cast<const char*>(alGetString(AL_EXTENSIONS))), ' ');
/* Add ALC extensions as well */
auto splitAlcExts = Utility::String::splitWithoutEmptyParts(Utility::String::fromArray(reinterpret_cast<const char*>(alcGetString(_device, ALC_EXTENSIONS))), ' ');
extensions.insert(extensions.end(), splitAlcExts.begin(), splitAlcExts.end());
return extensions;
}

3
src/Magnum/GL/Context.cpp

@ -985,8 +985,7 @@ std::vector<std::string> Context::extensionStrings() const {
{
/* Don't crash when glGetString() returns nullptr (i.e. don't trust the
old implementations) */
const char* e = reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS));
if(e) extensions = Utility::String::splitWithoutEmptyParts(e, ' ');
extensions = Utility::String::splitWithoutEmptyParts(Utility::String::fromArray(reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS))), ' ');
}
#endif

Loading…
Cancel
Save