diff --git a/indra/llcommon/llqueuedthread.h b/indra/llcommon/llqueuedthread.h index b3cde22b409a49340546aeb2e0b92aa99b723d59..8bfa5632a162ee4da4f0cd8587bb316c6914fe76 100644 --- a/indra/llcommon/llqueuedthread.h +++ b/indra/llcommon/llqueuedthread.h @@ -148,8 +148,6 @@ class LL_COMMON_API LLQueuedThread : public LLThread } }; - template class LL_COMMON_API std::set<QueuedRequest*, queued_request_less>; - //------------------------------------------------------------------------ diff --git a/indra/llcommon/llsdserialize.h b/indra/llcommon/llsdserialize.h index 4b32f0afcdadcd686a517b47f789244b68b56179..2f2b292189bf099373899d3eb48d0ddddc16d74c 100644 --- a/indra/llcommon/llsdserialize.h +++ b/indra/llcommon/llsdserialize.h @@ -638,9 +638,14 @@ class LL_COMMON_API LLSDBinaryFormatter : public LLSDFormatter * params << "[{'version':i1}," << LLSDOStreamer<LLSDNotationFormatter>(sd) * << "]"; * </code> + * + * *NOTE - formerly this class inherited from its template parameter Formatter, + * but all insnatiations passed in LLRefCount subclasses. This conflicted with + * the auto allocation intended for this class template (demonstrated in the + * example above). -brad */ template <class Formatter> -class LLSDOStreamer : public Formatter +class LLSDOStreamer { public: /** @@ -661,7 +666,8 @@ class LLSDOStreamer : public Formatter std::ostream& str, const LLSDOStreamer<Formatter>& formatter) { - formatter.format(formatter.mSD, str, formatter.mOptions); + LLPointer<Formatter> f = new Formatter; + f->format(formatter.mSD, str, formatter.mOptions); return str; }