Remove implicit conversions
Implicit conversions are something that nlohmann library itself is a bad
default, and 3 years ago threatened to change the default. These
implicit conversions cause a number of crashes that are hard to
reproduce, because they throw an uncaught exception.
Update the code to be able to do no more implicit conversions.
Tested: Entity-manager launches and runs. Items are detected correctly
and show up on dbus. Unit tests pass.
Change-Id: Ib23159ae58f5584641427d9be7545bc25a3619af
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/src/entity_manager/utils.hpp b/src/entity_manager/utils.hpp
index a8bba16..14e35cc 100644
--- a/src/entity_manager/utils.hpp
+++ b/src/entity_manager/utils.hpp
@@ -27,16 +27,16 @@
bool fwVersionIsSame();
-void handleLeftOverTemplateVars(nlohmann::json::iterator& keyPair);
+void handleLeftOverTemplateVars(nlohmann::json& value);
std::optional<std::string> templateCharReplace(
- nlohmann::json::iterator& keyPair, const DBusObject& object, size_t index,
+ nlohmann::json& value, const DBusObject& object, size_t index,
const std::optional<std::string>& replaceStr = std::nullopt,
bool handleLeftOver = true);
std::optional<std::string> templateCharReplace(
- nlohmann::json::iterator& keyPair, const DBusInterface& interface,
- size_t index, const std::optional<std::string>& replaceStr = std::nullopt);
+ nlohmann::json& value, const DBusInterface& interface, size_t index,
+ const std::optional<std::string>& replaceStr = std::nullopt);
std::string buildInventorySystemPath(std::string& boardName,
const std::string& boardType);