summaryrefslogtreecommitdiff
path: root/indra/llui/lluictrlfactory.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2012-07-18 15:51:34 -0400
committerNat Goodspeed <nat@lindenlab.com>2012-07-18 15:51:34 -0400
commit7f609b6a6958f519bb1becb604132b583ada3fad (patch)
tree0ec9f6eaeacd0f87181a8097c2537ba36696e57f /indra/llui/lluictrlfactory.cpp
parent18bd525d00ee3ce16164900293ee6ea8c2204589 (diff)
Backed out changeset a25bfa87418d (using std::type_info::name())
The changeset above touched every consumer of the two LLRegistrySingletons originally defined with std::type_info* as keys. Those two LLRegistrySingletons were changed to use const char* as keys, then all consumers were changed to pass std::type_info::name() instead of the plain std::type_info* pointer -- to deal with the observed fact that on Linux, a given type might produce different std::type_info* pointers in different load modules. Since then, Richard turned up the fascinating fact that at least some implementations of gcc's std::type_info::before() method already accommodate this peculiarity. It seems worth backing out the (dismayingly pervasive) change to see if properly using std::type_info::before() as the map comparator will work just as well, with conceptually simpler source code. This backout is transitional: we don't expect things to build/run properly until we've cherry-picked certain other pertinent changes.
Diffstat (limited to 'indra/llui/lluictrlfactory.cpp')
-rw-r--r--indra/llui/lluictrlfactory.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp
index fe3b470722..25e7a31e90 100644
--- a/indra/llui/lluictrlfactory.cpp
+++ b/indra/llui/lluictrlfactory.cpp
@@ -281,7 +281,7 @@ const LLInitParam::BaseBlock& get_empty_param_block()
void LLUICtrlFactory::registerWidget(const std::type_info* widget_type, const std::type_info* param_block_type, const std::string& tag)
{
// associate parameter block type with template .xml file
- std::string* existing_tag = LLWidgetNameRegistry::instance().getValue(param_block_type->name());
+ std::string* existing_tag = LLWidgetNameRegistry::instance().getValue(param_block_type);
if (existing_tag != NULL)
{
if(*existing_tag != tag)
@@ -297,7 +297,7 @@ void LLUICtrlFactory::registerWidget(const std::type_info* widget_type, const st
return;
}
}
- LLWidgetNameRegistry::instance().defaultRegistrar().add(param_block_type->name(), tag);
+ LLWidgetNameRegistry::instance().defaultRegistrar().add(param_block_type, tag);
//FIXME: comment this in when working on schema generation
//LLWidgetTypeRegistry::instance().defaultRegistrar().add(tag, widget_type);
//LLDefaultParamBlockRegistry::instance().defaultRegistrar().add(widget_type, &get_empty_param_block<T>);
@@ -306,6 +306,6 @@ void LLUICtrlFactory::registerWidget(const std::type_info* widget_type, const st
//static
const std::string* LLUICtrlFactory::getWidgetTag(const std::type_info* widget_type)
{
- return LLWidgetNameRegistry::instance().getValue(widget_type->name());
+ return LLWidgetNameRegistry::instance().getValue(widget_type);
}