diff options
| -rw-r--r-- | indra/llappearance/llwearabletype.cpp | 17 | ||||
| -rw-r--r-- | indra/llappearance/llwearabletype.h | 1 | 
2 files changed, 8 insertions, 10 deletions
| diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp index 6b7dc41ffd..dc02b5e225 100644 --- a/indra/llappearance/llwearabletype.cpp +++ b/indra/llappearance/llwearabletype.cpp @@ -56,7 +56,7 @@ struct WearableEntry : public LLDictionaryEntry  	BOOL mAllowMultiwear;  }; -class LLWearableDictionary : public LLParamSingleton<LLWearableDictionary>, +class LLWearableDictionary : public LLSingleton<LLWearableDictionary>,  							 public LLDictionary<LLWearableType::EType, WearableEntry>  {  	LLSINGLETON(LLWearableDictionary); @@ -64,6 +64,12 @@ class LLWearableDictionary : public LLParamSingleton<LLWearableDictionary>,  LLWearableDictionary::LLWearableDictionary()  { +    if (!LLWearableType::instanceExists()) +    { +        // LLWearableType is effectively a wrapper around LLWearableDictionary and is used as storage for LLTranslationBridge +        // Todo: consider merging LLWearableType and LLWearableDictionary +        LL_WARNS() << "Initing LLWearableDictionary without LLWearableType" << LL_ENDL; +    }  	addEntry(LLWearableType::WT_SHAPE,        new WearableEntry("shape",       "New Shape",			LLAssetType::AT_BODYPART, 	LLInventoryType::ICONNAME_BODYPART_SHAPE, FALSE, FALSE));  	addEntry(LLWearableType::WT_SKIN,         new WearableEntry("skin",        "New Skin",			LLAssetType::AT_BODYPART, 	LLInventoryType::ICONNAME_BODYPART_SKIN, FALSE, FALSE));  	addEntry(LLWearableType::WT_HAIR,         new WearableEntry("hair",        "New Hair",			LLAssetType::AT_BODYPART, 	LLInventoryType::ICONNAME_BODYPART_HAIR, FALSE, FALSE)); @@ -92,6 +98,7 @@ LLWearableDictionary::LLWearableDictionary()  LLWearableType::LLWearableType(LLTranslationBridge* trans)  { +    // LLTranslationBridge exists, but is not ready at this point in time since strings.xml is not yet loaded      mTrans = trans;  } @@ -100,14 +107,6 @@ LLWearableType::~LLWearableType()      delete mTrans;  } -void LLWearableType::initSingleton() -{ -    // To make sure all wrapping functions will crash without initing LLWearableType; -    LLWearableDictionary::initParamSingleton(); - -    // Todo: consider merging LLWearableType and LLWearableDictionary -} -  // static  LLWearableType::EType LLWearableType::typeNameToType(const std::string& type_name)  { diff --git a/indra/llappearance/llwearabletype.h b/indra/llappearance/llwearabletype.h index 80bb9a10b4..5fe969822a 100644 --- a/indra/llappearance/llwearabletype.h +++ b/indra/llappearance/llwearabletype.h @@ -47,7 +47,6 @@ class LLWearableType : public LLParamSingleton<LLWearableType>  	LLSINGLETON(LLWearableType, LLTranslationBridge* trans);  	~LLWearableType();  	friend struct WearableEntry; -	void initSingleton();  public:   	enum EType  	{ | 
