Turn on ALL perf checks
1st, alphabetize the tidy-list for good housekeeping.
Next, enable all the clang-tidy performance checks, and resolve all the
issues. most of the issues boil down to:
1. Using std::move on const variables. This does nothing.
2. Passing big variables (like std::string) by value.
3. Using double quotes on a find call, which constructs an intermediate
string, rather than using the character overload.
Tested
Loaded on system, logged in successfully and pulled down webui-vue. No
new errors.
Walked the Redfish tree a bit, and observed no new problems.
Ran redfish service validator. Got no new failures (although there are
a lot of log service deprecation warnings that we should look at).
Signed-off-by: Ed Tanous <ed@tanous.net>
Change-Id: I2238958c4b22c1e554e09a0a1787c744bdbca43e
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index a369ef2..e970de5 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -2444,12 +2444,21 @@
const char* name = methods->Attribute("name");
if (name != nullptr)
{
- methodsArray.push_back(
- {{"name", name},
- {"uri", "/bus/system/" + processName +
- objectPath + "/" +
- interfaceName + "/" + name},
- {"args", argsArray}});
+ std::string uri;
+ uri.reserve(14 + processName.size() +
+ objectPath.size() +
+ interfaceName.size() +
+ strlen(name));
+ uri += "/bus/system/";
+ uri += processName;
+ uri += objectPath;
+ uri += "/";
+ uri += interfaceName;
+ uri += "/";
+ uri += name;
+ methodsArray.push_back({{"name", name},
+ {"uri", std::move(uri)},
+ {"args", argsArray}});
}
methods = methods->NextSiblingElement("method");
}