From fbc0e795b114ddbfb73cc62ce25a1e9a1cafacba Mon Sep 17 00:00:00 2001 From: Richard Linden <none@none> Date: Tue, 27 Apr 2010 16:08:56 -0700 Subject: [PATCH] added empty param blocks to registered widgets that didn't have them made LLDefaultChildRegistry::Register errors actually crash the client...llerrs doesn't work in static initializers --- indra/llui/llfloater.h | 4 ++++ indra/llui/lluictrlfactory.cpp | 5 ++++- indra/newview/llchiclet.h | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 403723d9d8d..444711de81e 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -432,11 +432,15 @@ friend class LLMultiFloater; class LLFloaterView : public LLUICtrl { +public: + struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>{}; + protected: LLFloaterView (const Params& p); friend class LLUICtrlFactory; public: + /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); void reshapeFloater(S32 width, S32 height, BOOL called_from_parent, BOOL adjust_vertical); diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 27237800d4b..930dadc377f 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -435,7 +435,10 @@ void LLUICtrlFactory::registerWidget(const std::type_info* widget_type, const st std::string* existing_tag = LLWidgetNameRegistry::instance().getValue(param_block_type); if (existing_tag != NULL && *existing_tag != tag) { - llerrs << "Duplicate entry for T::Params, try creating empty param block in derived classes that inherit T::Params" << llendl; + 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; } LLWidgetNameRegistry ::instance().defaultRegistrar().add(param_block_type, tag); // associate widget type with factory function diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h index 489c66be71a..9d421b4f0bd 100644 --- a/indra/newview/llchiclet.h +++ b/indra/newview/llchiclet.h @@ -921,6 +921,9 @@ class LLIMWellChiclet : public LLSysWellChiclet, LLIMSessionObserver class LLNotificationChiclet : public LLSysWellChiclet { friend class LLUICtrlFactory; +public: + struct Params : public LLInitParam::Block<Params, LLSysWellChiclet::Params>{}; + protected: LLNotificationChiclet(const Params& p); -- GitLab