summaryrefslogtreecommitdiff
path: root/indra/llxml
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llxml')
-rw-r--r--indra/llxml/llcontrol.cpp65
-rw-r--r--indra/llxml/llxmlnode.h1
2 files changed, 34 insertions, 32 deletions
diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp
index da6302b27c..2af28f7d2c 100644
--- a/indra/llxml/llcontrol.cpp
+++ b/indra/llxml/llcontrol.cpp
@@ -113,7 +113,8 @@ void LLControlGroup::cleanup()
LLControlBase* LLControlGroup::getControl(const LLString& name)
{
- return mNameTable[name];
+ ctrl_name_table_t::iterator iter = mNameTable.find(name);
+ return iter == mNameTable.end() ? NULL : (LLControlBase*)iter->second;
}
BOOL LLControlGroup::declareControl(const LLString& name, eControlType type, const LLSD initial_val, const LLString& comment, BOOL persist)
@@ -124,9 +125,11 @@ BOOL LLControlGroup::declareControl(const LLString& name, eControlType type, con
LLControl* control = new LLControl(name, type, initial_val, comment, persist);
mNameTable[name] = control;
return TRUE;
- } else
+ }
+ else
{
llwarns << "LLControlGroup::declareControl: Control named " << name << " already exists." << llendl;
+ mNameTable.erase(name);
return FALSE;
}
}
@@ -188,7 +191,7 @@ BOOL LLControlGroup::declareColor3(const LLString& name, const LLColor3 &initial
LLSD LLControlGroup::registerListener(const LLString& name, LLSimpleListenerObservable *listener)
{
- LLControlBase *control = mNameTable[name];
+ LLControlBase *control = getControl(name);
if (control)
{
return control->registerListener(listener);
@@ -198,7 +201,7 @@ LLSD LLControlGroup::registerListener(const LLString& name, LLSimpleListenerObse
BOOL LLControlGroup::getBOOL(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_BOOLEAN))
return control->get().asBoolean();
@@ -211,7 +214,7 @@ BOOL LLControlGroup::getBOOL(const LLString& name)
S32 LLControlGroup::getS32(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_S32))
return control->get().asInteger();
@@ -224,7 +227,7 @@ S32 LLControlGroup::getS32(const LLString& name)
U32 LLControlGroup::getU32(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_U32))
return control->get().asInteger();
@@ -237,7 +240,7 @@ U32 LLControlGroup::getU32(const LLString& name)
F32 LLControlGroup::getF32(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_F32))
return (F32) control->get().asReal();
@@ -250,7 +253,7 @@ F32 LLControlGroup::getF32(const LLString& name)
LLString LLControlGroup::findString(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_STRING))
return control->get().asString();
@@ -259,7 +262,7 @@ LLString LLControlGroup::findString(const LLString& name)
LLString LLControlGroup::getString(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_STRING))
return control->get().asString();
@@ -285,7 +288,7 @@ LLString LLControlGroup::getText(const LLString& name)
LLVector3 LLControlGroup::getVector3(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_VEC3))
return control->get();
@@ -298,7 +301,7 @@ LLVector3 LLControlGroup::getVector3(const LLString& name)
LLVector3d LLControlGroup::getVector3d(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_VEC3D))
return control->get();
@@ -311,7 +314,7 @@ LLVector3d LLControlGroup::getVector3d(const LLString& name)
LLRect LLControlGroup::getRect(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_RECT))
return control->get();
@@ -357,7 +360,7 @@ LLColor4 LLControlGroup::getColor(const LLString& name)
LLColor4U LLControlGroup::getColor4U(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_COL4U))
return control->get();
@@ -370,7 +373,7 @@ LLColor4U LLControlGroup::getColor4U(const LLString& name)
LLColor4 LLControlGroup::getColor4(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_COL4))
return control->get();
@@ -383,7 +386,7 @@ LLColor4 LLControlGroup::getColor4(const LLString& name)
LLColor3 LLControlGroup::getColor3(const LLString& name)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_COL3))
return control->get();
@@ -396,9 +399,8 @@ LLColor3 LLControlGroup::getColor3(const LLString& name)
BOOL LLControlGroup::controlExists(const LLString& name)
{
- void *control = mNameTable[name];
-
- return (control != 0);
+ ctrl_name_table_t::iterator iter = mNameTable.find(name);
+ return iter != mNameTable.end();
}
//-------------------------------------------------------------------
@@ -407,7 +409,7 @@ BOOL LLControlGroup::controlExists(const LLString& name)
void LLControlGroup::setBOOL(const LLString& name, BOOL val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_BOOLEAN))
{
@@ -422,7 +424,7 @@ void LLControlGroup::setBOOL(const LLString& name, BOOL val)
void LLControlGroup::setS32(const LLString& name, S32 val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_S32))
{
@@ -437,7 +439,7 @@ void LLControlGroup::setS32(const LLString& name, S32 val)
void LLControlGroup::setF32(const LLString& name, F32 val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_F32))
{
@@ -452,7 +454,7 @@ void LLControlGroup::setF32(const LLString& name, F32 val)
void LLControlGroup::setU32(const LLString& name, U32 val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_U32))
{
@@ -467,7 +469,7 @@ void LLControlGroup::setU32(const LLString& name, U32 val)
void LLControlGroup::setString(const LLString& name, const LLString &val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_STRING))
{
@@ -482,7 +484,7 @@ void LLControlGroup::setString(const LLString& name, const LLString &val)
void LLControlGroup::setVector3(const LLString& name, const LLVector3 &val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_VEC3))
{
@@ -496,7 +498,7 @@ void LLControlGroup::setVector3(const LLString& name, const LLVector3 &val)
void LLControlGroup::setVector3d(const LLString& name, const LLVector3d &val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_VEC3D))
{
@@ -510,7 +512,7 @@ void LLControlGroup::setVector3d(const LLString& name, const LLVector3d &val)
void LLControlGroup::setRect(const LLString& name, const LLRect &val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_RECT))
{
@@ -524,7 +526,7 @@ void LLControlGroup::setRect(const LLString& name, const LLRect &val)
void LLControlGroup::setColor4U(const LLString& name, const LLColor4U &val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_COL4U))
{
@@ -538,7 +540,7 @@ void LLControlGroup::setColor4U(const LLString& name, const LLColor4U &val)
void LLControlGroup::setColor4(const LLString& name, const LLColor4 &val)
{
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control && control->isType(TYPE_COL4))
{
@@ -557,7 +559,7 @@ void LLControlGroup::setValue(const LLString& name, const LLSD& val)
return;
}
- LLControlBase* control = mNameTable[name];
+ LLControlBase* control = getControl(name);
if (control)
{
@@ -839,7 +841,7 @@ U32 LLControlGroup::loadFromFile(const LLString& filename, BOOL require_declarat
{
name = child_nodep->getName();
- BOOL declared = (mNameTable[name].notNull());
+ BOOL declared = controlExists(name);
if (require_declaration && !declared)
{
@@ -1026,8 +1028,7 @@ U32 LLControlGroup::saveToFile(const LLString& filename, BOOL nondefault_only)
break;
}
- LLControlBase* control = (LLControlBase *)mNameTable[name];
-
+ LLControlBase* control = (LLControlBase *)iter->second;
if (!control)
{
llwarns << "Tried to save invalid control: " << name << llendl;
diff --git a/indra/llxml/llxmlnode.h b/indra/llxml/llxmlnode.h
index ca8c1d176f..ae16a9d800 100644
--- a/indra/llxml/llxmlnode.h
+++ b/indra/llxml/llxmlnode.h
@@ -15,6 +15,7 @@
#include "indra_constants.h"
#include "llmemory.h"
+#include "llthread.h"
#include "llstring.h"
#include "llstringtable.h"