summaryrefslogtreecommitdiff
path: root/indra/llxml
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llxml')
-rw-r--r--indra/llxml/llcontrol.cpp4
-rw-r--r--indra/llxml/llcontrol.h4
-rw-r--r--indra/llxml/llxmltree.cpp13
-rw-r--r--indra/llxml/tests/llcontrol_test.cpp12
4 files changed, 18 insertions, 15 deletions
diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp
index bb590ebd76..6d02cbaa34 100644
--- a/indra/llxml/llcontrol.cpp
+++ b/indra/llxml/llcontrol.cpp
@@ -728,7 +728,7 @@ void LLControlGroup::setLLSD(std::string_view name, const LLSD& val)
set(name, val);
}
-void LLControlGroup::setUntypedValue(std::string_view name, const LLSD& val)
+void LLControlGroup::setUntypedValue(std::string_view name, const LLSD& val, bool saved_value)
{
if (name.empty())
{
@@ -739,7 +739,7 @@ void LLControlGroup::setUntypedValue(std::string_view name, const LLSD& val)
if (control)
{
- control->setValue(val);
+ control->setValue(val, saved_value);
}
else
{
diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h
index 4f54a9d705..a614ff216b 100644
--- a/indra/llxml/llcontrol.h
+++ b/indra/llxml/llcontrol.h
@@ -119,7 +119,7 @@ public:
LLSD getDefault() const { return mValues.front(); }
LLSD getSaveValue() const;
- void set(const LLSD& val) { setValue(val); }
+ void set(const LLSD& val, bool saved_value = true) { setValue(val, saved_value); }
void setValue(const LLSD& value, bool saved_value = true);
void setDefaultValue(const LLSD& value);
void setPersist(ePersist);
@@ -254,7 +254,7 @@ public:
void setLLSD(std::string_view name, const LLSD& val);
// type agnostic setter that takes LLSD
- void setUntypedValue(std::string_view name, const LLSD& val);
+ void setUntypedValue(std::string_view name, const LLSD& val, bool saved_value = true);
// generic setter
template<typename T> void set(std::string_view name, const T& val)
diff --git a/indra/llxml/llxmltree.cpp b/indra/llxml/llxmltree.cpp
index 164b3156e1..d66544d0f8 100644
--- a/indra/llxml/llxmltree.cpp
+++ b/indra/llxml/llxmltree.cpp
@@ -108,12 +108,15 @@ LLXmlTreeNode::LLXmlTreeNode( const std::string& name, LLXmlTreeNode* parent, LL
LLXmlTreeNode::~LLXmlTreeNode()
{
- attribute_map_t::iterator iter;
- for (iter=mAttributes.begin(); iter != mAttributes.end(); iter++)
- delete iter->second;
- for(LLXmlTreeNode* node : mChildren)
+ for (auto& attr : mAttributes)
+ {
+ delete attr.second;
+ }
+ mAttributes.clear();
+
+ for (auto& child : mChildren)
{
- delete node;
+ delete child;
}
mChildren.clear();
}
diff --git a/indra/llxml/tests/llcontrol_test.cpp b/indra/llxml/tests/llcontrol_test.cpp
index 4192e029c5..52c202bceb 100644
--- a/indra/llxml/tests/llcontrol_test.cpp
+++ b/indra/llxml/tests/llcontrol_test.cpp
@@ -97,7 +97,7 @@ namespace tut
template<> template<>
void control_group_t::test<1>()
{
- int results = mCG->loadFromFile(mTestConfigFile.c_str());
+ int results = mCG->loadFromFile(mTestConfigFile);
ensure("number of settings", (results == 1));
ensure("value of setting", (mCG->getU32("TestSetting") == 12));
}
@@ -106,14 +106,14 @@ namespace tut
template<> template<>
void control_group_t::test<2>()
{
- int results = mCG->loadFromFile(mTestConfigFile.c_str());
+ int results = mCG->loadFromFile(mTestConfigFile);
mCG->setU32("TestSetting", 13);
ensure_equals("value of changed setting", mCG->getU32("TestSetting"), 13);
LLControlGroup test_cg("foo2");
std::string temp_test_file = (mTestConfigDir + "setting_llsd_temp.xml");
mCleanups.push_back(temp_test_file);
mCG->saveToFile(temp_test_file.c_str(), true);
- results = test_cg.loadFromFile(temp_test_file.c_str());
+ results = test_cg.loadFromFile(temp_test_file);
ensure("number of changed settings loaded", (results == 1));
ensure("value of changed settings loaded", (test_cg.getU32("TestSetting") == 13));
}
@@ -126,7 +126,7 @@ namespace tut
// a default settings file that declares variables, rather than a user
// settings file. When loadFromFile() encounters an unrecognized user
// settings variable, it forcibly preserves it (CHOP-962).
- int results = mCG->loadFromFile(mTestConfigFile.c_str(), true);
+ int results = mCG->loadFromFile(mTestConfigFile, true);
LLControlVariable* control = mCG->getControl("TestSetting");
LLSD new_value = 13;
control->setValue(new_value, false);
@@ -135,7 +135,7 @@ namespace tut
std::string temp_test_file = (mTestConfigDir + "setting_llsd_persist_temp.xml");
mCleanups.push_back(temp_test_file);
mCG->saveToFile(temp_test_file.c_str(), true);
- results = test_cg.loadFromFile(temp_test_file.c_str());
+ results = test_cg.loadFromFile(temp_test_file);
//If we haven't changed any settings, then we shouldn't have any settings to load
ensure("number of non-persisted changed settings loaded", (results == 0));
}
@@ -144,7 +144,7 @@ namespace tut
template<> template<>
void control_group_t::test<4>()
{
- int results = mCG->loadFromFile(mTestConfigFile.c_str());
+ int results = mCG->loadFromFile(mTestConfigFile);
ensure("number of settings", (results == 1));
mCG->getControl("TestSetting")->getSignal()->connect(boost::bind(&this->handleListenerTest));
mCG->setU32("TestSetting", 13);