Browse Source

Clean up unnecessary STL usage in internal converter utilities.

pull/594/head
Vladimír Vondruš 4 years ago
parent
commit
8c917d4570
  1. 23
      src/Magnum/Implementation/converterUtilities.h
  2. 1
      src/Magnum/SceneTools/sceneconverter.cpp
  3. 1
      src/Magnum/Test/ConverterUtilitiesTest.cpp

23
src/Magnum/Implementation/converterUtilities.h

@ -25,11 +25,10 @@
DEALINGS IN THE SOFTWARE. DEALINGS IN THE SOFTWARE.
*/ */
#include <Corrade/Containers/Array.h>
#include <Corrade/Containers/StaticArray.h> #include <Corrade/Containers/StaticArray.h>
#include <Corrade/PluginManager/AbstractPlugin.h> #include <Corrade/PluginManager/AbstractPlugin.h>
#include <Corrade/Utility/ConfigurationGroup.h> #include <Corrade/Utility/ConfigurationGroup.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/String.h>
#include "Magnum/Magnum.h" #include "Magnum/Magnum.h"
@ -38,14 +37,14 @@ namespace Magnum { namespace Implementation {
/* Used only in executables where we don't want it to be exported */ /* Used only in executables where we don't want it to be exported */
namespace { namespace {
void setOptions(PluginManager::AbstractPlugin& plugin, const std::string& anyPluginName, const std::string& options) { void setOptions(PluginManager::AbstractPlugin& plugin, const Containers::StringView anyPluginName, const Containers::StringView options) {
for(const std::string& option: Utility::String::splitWithoutEmptyParts(options, ',')) { for(const Containers::StringView option: options.splitWithoutEmptyParts(',')) {
auto keyValue = Utility::String::partition(option, '='); auto keyValue = option.partition('=');
Utility::String::trimInPlace(keyValue[0]); keyValue[0] = keyValue[0].trimmed();
Utility::String::trimInPlace(keyValue[2]); keyValue[2] = keyValue[2].trimmed();
std::vector<std::string> keyParts = Utility::String::split(keyValue[0], '/'); const Containers::Array<Containers::StringView> keyParts = keyValue[0].split('/');
CORRADE_INTERNAL_ASSERT(!keyParts.empty()); CORRADE_INTERNAL_ASSERT(!keyParts.isEmpty());
Utility::ConfigurationGroup* group = &plugin.configuration(); Utility::ConfigurationGroup* group = &plugin.configuration();
bool groupNotRecognized = false; bool groupNotRecognized = false;
for(std::size_t i = 0; i != keyParts.size() - 1; ++i) { for(std::size_t i = 0; i != keyParts.size() - 1; ++i) {
@ -72,10 +71,10 @@ void setOptions(PluginManager::AbstractPlugin& plugin, const std::string& anyPlu
/* If the option doesn't have an =, treat it as a boolean flag that's /* If the option doesn't have an =, treat it as a boolean flag that's
set to true. While there's no similar way to do an inverse, it's set to true. While there's no similar way to do an inverse, it's
still nicer than causing a fatal error with those. */ still nicer than causing a fatal error with those. */
if(keyValue[1].empty()) if(keyValue[1])
group->setValue(keyParts.back(), true);
else
group->setValue(keyParts.back(), keyValue[2]); group->setValue(keyParts.back(), keyValue[2]);
else
group->setValue(keyParts.back(), true);
} }
} }

1
src/Magnum/SceneTools/sceneconverter.cpp

@ -31,6 +31,7 @@
#include <Corrade/Utility/DebugStl.h> /** @todo remove once Arguments is std::string-free */ #include <Corrade/Utility/DebugStl.h> /** @todo remove once Arguments is std::string-free */
#include <Corrade/Utility/Format.h> #include <Corrade/Utility/Format.h>
#include <Corrade/Utility/Path.h> #include <Corrade/Utility/Path.h>
#include <Corrade/Utility/String.h> /* parseNumberSequence() */
#include "Magnum/MeshTools/Concatenate.h" #include "Magnum/MeshTools/Concatenate.h"
#include "Magnum/MeshTools/Reference.h" #include "Magnum/MeshTools/Reference.h"

1
src/Magnum/Test/ConverterUtilitiesTest.cpp

@ -26,6 +26,7 @@
#include <sstream> #include <sstream>
#include <Corrade/TestSuite/Tester.h> #include <Corrade/TestSuite/Tester.h>
#include <Corrade/Utility/Configuration.h> #include <Corrade/Utility/Configuration.h>
#include <Corrade/Utility/DebugStl.h>
#include "Magnum/Implementation/converterUtilities.h" #include "Magnum/Implementation/converterUtilities.h"

Loading…
Cancel
Save