summaryrefslogtreecommitdiff
path: root/indra/llui/lluictrlfactory.cpp
diff options
context:
space:
mode:
authorRichard Linden <none@none>2010-07-01 14:19:07 -0700
committerRichard Linden <none@none>2010-07-01 14:19:07 -0700
commit551acaa2df046a25f90d716bd1153522821073e9 (patch)
treed5f0678f7978ff184c83a0acd9576d36929d31a6 /indra/llui/lluictrlfactory.cpp
parent166a29e4ebd63d893edf94e8e550e42f56e9bec1 (diff)
eliminated a bunch of silent warnings on startup about multiple widget registration
Diffstat (limited to 'indra/llui/lluictrlfactory.cpp')
-rw-r--r--indra/llui/lluictrlfactory.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp
index 6b337e0d74..a46d961709 100644
--- a/indra/llui/lluictrlfactory.cpp
+++ b/indra/llui/lluictrlfactory.cpp
@@ -452,14 +452,22 @@ void LLUICtrlFactory::registerWidget(const std::type_info* widget_type, const st
{
// associate parameter block type with template .xml file
std::string* existing_tag = LLWidgetNameRegistry::instance().getValue(param_block_type);
- if (existing_tag != NULL && *existing_tag != tag)
+ if (existing_tag != NULL)
{
- std::cerr << "Duplicate entry for T::Params, try creating empty param block in derived classes that inherit T::Params" << std::endl;
- // forcing crash here
- char* foo = 0;
- *foo = 1;
+ if(*existing_tag != tag)
+ {
+ std::cerr << "Duplicate entry for T::Params, try creating empty param block in derived classes that inherit T::Params" << std::endl;
+ // forcing crash here
+ char* foo = 0;
+ *foo = 1;
+ }
+ else
+ {
+ // widget already registered
+ return;
+ }
}
- LLWidgetNameRegistry ::instance().defaultRegistrar().add(param_block_type, tag);
+ LLWidgetNameRegistry::instance().defaultRegistrar().add(param_block_type, tag);
// associate widget type with factory function
LLDefaultWidgetRegistry::instance().defaultRegistrar().add(widget_type, creator_func);
//FIXME: comment this in when working on schema generation