diff --git a/src/slic3r/GUI/AppConfig.hpp b/src/slic3r/GUI/AppConfig.hpp index 58e04433bc..c1c4607ec1 100644 --- a/src/slic3r/GUI/AppConfig.hpp +++ b/src/slic3r/GUI/AppConfig.hpp @@ -5,6 +5,8 @@ #include #include +#include + #include "libslic3r/Config.hpp" #include "libslic3r/Semver.hpp" @@ -52,7 +54,13 @@ public: std::string get(const std::string &key) const { std::string value; this->get("", key, value); return value; } void set(const std::string §ion, const std::string &key, const std::string &value) - { + { +#ifndef _NDEBUG + std::string key_trimmed = key; + boost::trim_all(key_trimmed); + assert(key_trimmed == key); + assert(! key_trimmed.empty()); +#endif _NDEBUG std::string &old = m_storage[section][key]; if (old != value) { old = value; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index e66922630d..ac4357a2e2 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1926,6 +1926,7 @@ void ConfigWizard::priv::update_presets_in_config(const std::string& section, co const PresetAliases& aliases = section == AppConfig::SECTION_FILAMENTS ? aliases_fff : aliases_sla; auto update = [this, add](const std::string& s, const std::string& key) { + assert(! s.empty()); if (add) appconfig_new.set(s, key, "1"); else diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index b5d6392f93..28c959b692 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -189,6 +189,9 @@ VendorProfile VendorProfile::from_ini(const ptree &tree, const boost::filesystem default_materials_field = section.second.get("default_filaments", ""); if (Slic3r::unescape_strings_cstyle(default_materials_field, model.default_materials)) { Slic3r::sort_remove_duplicates(model.default_materials); + if (! model.default_materials.empty() && model.default_materials.front().empty()) + // An empty material was inserted into the list of default materials. Remove it. + model.default_materials.erase(model.default_materials.begin()); } else { BOOST_LOG_TRIVIAL(error) << boost::format("Vendor bundle: `%1%`: Malformed default_materials field: `%2%`") % id % default_materials_field; }