From 609275f99329e7431baf15f55ff9e4c6f6a45b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 22 Jun 2020 11:58:47 +0200 Subject: [PATCH] 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. --- src/Magnum/Audio/Context.cpp | 14 +++++--------- src/Magnum/GL/Context.cpp | 3 +-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/Magnum/Audio/Context.cpp b/src/Magnum/Audio/Context.cpp index 7178ba8f3..63c965d89 100644 --- a/src/Magnum/Audio/Context.cpp +++ b/src/Magnum/Audio/Context.cpp @@ -333,15 +333,11 @@ std::vector Context::extensionStrings() const { std::vector extensions; /* Don't crash when alGetString() returns nullptr */ - const char* alExts = reinterpret_cast(alGetString(AL_EXTENSIONS)); - if(alExts) extensions = Utility::String::splitWithoutEmptyParts(alExts, ' '); - - /* Add ALC extensions aswell */ - const char* alcExts = reinterpret_cast(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(alGetString(AL_EXTENSIONS))), ' '); + + /* Add ALC extensions as well */ + auto splitAlcExts = Utility::String::splitWithoutEmptyParts(Utility::String::fromArray(reinterpret_cast(alcGetString(_device, ALC_EXTENSIONS))), ' '); + extensions.insert(extensions.end(), splitAlcExts.begin(), splitAlcExts.end()); return extensions; } diff --git a/src/Magnum/GL/Context.cpp b/src/Magnum/GL/Context.cpp index 36dbe4c6c..17297e687 100644 --- a/src/Magnum/GL/Context.cpp +++ b/src/Magnum/GL/Context.cpp @@ -985,8 +985,7 @@ std::vector Context::extensionStrings() const { { /* Don't crash when glGetString() returns nullptr (i.e. don't trust the old implementations) */ - const char* e = reinterpret_cast(glGetString(GL_EXTENSIONS)); - if(e) extensions = Utility::String::splitWithoutEmptyParts(e, ' '); + extensions = Utility::String::splitWithoutEmptyParts(Utility::String::fromArray(reinterpret_cast(glGetString(GL_EXTENSIONS))), ' '); } #endif