From 26d8a32b7395d7bf1d1da7c32b9f2cdf5770510a Mon Sep 17 00:00:00 2001 From: Patrick Storz Date: Tue, 6 Aug 2019 00:11:54 +0200 Subject: Optimize parameter string generation Also rename overloaded string() functions, so it's clear what they actually do, as it's not the same thing at all... --- src/extension/prefdialog/parameter.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src/extension/prefdialog/parameter.cpp') diff --git a/src/extension/prefdialog/parameter.cpp b/src/extension/prefdialog/parameter.cpp index 61cf8c662..3f8f30c60 100644 --- a/src/extension/prefdialog/parameter.cpp +++ b/src/extension/prefdialog/parameter.cpp @@ -57,7 +57,7 @@ public: } // Well, no, I don't have a value! That's why I should not be an InxParameter! - void string(std::string &/*string*/) const override {} + std::string value_to_string() const override { return ""; } }; @@ -264,25 +264,25 @@ char *InxParameter::pref_name() const return g_strdup_printf("%s.%s", _extension->get_id(), _name); } -void InxParameter::string(std::string &/*string*/) const +std::string InxParameter::value_to_string() const { // if we end up here we're missing a definition of ::string() in one of the subclasses - g_critical("InxParameter::string called from parameter '%s' in extension '%s'", _name, _extension->get_id()); + g_critical("InxParameter::value_to_string called from parameter '%s' in extension '%s'", _name, _extension->get_id()); g_assert_not_reached(); + return ""; } -void InxParameter::string(std::list &list) const +void InxParameter::build_param_string_list(std::list &list) const { - std::string value; - string(value); - if (!value.empty()) { - std::string final; - final += "--"; - final += name(); - final += "="; - final += value; - - list.insert(list.end(), final); + std::string value_string = value_to_string(); + if (!value_string.empty()) { + std::string parameter_string; // --param=value + parameter_string += "--"; + parameter_string += name(); + parameter_string += "="; + parameter_string += value_string; + + list.insert(list.end(), parameter_string); } } -- cgit v1.2.3