summaryrefslogtreecommitdiff
path: root/indra/llcommon/llinstancetracker.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon/llinstancetracker.h')
-rw-r--r--indra/llcommon/llinstancetracker.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h
index cfb40c25f0..196bc5c0dd 100644
--- a/indra/llcommon/llinstancetracker.h
+++ b/indra/llcommon/llinstancetracker.h
@@ -42,18 +42,21 @@
#include <boost/iterator/filter_iterator.hpp>
#include "lockstatic.h"
+#include "stringize.h"
/*****************************************************************************
* StaticBase
*****************************************************************************/
-namespace LLInstanceTrackerStuff
+namespace LLInstanceTrackerPrivate
{
struct StaticBase
{
// We need to be able to lock static data while manipulating it.
std::mutex mMutex;
};
-} // namespace LLInstanceTrackerStuff
+
+ void logerrs(const char* cls, const std::string&, const std::string&, const std::string&);
+} // namespace LLInstanceTrackerPrivate
/*****************************************************************************
* LLInstanceTracker with key
@@ -73,7 +76,7 @@ template<typename T, typename KEY = void,
class LLInstanceTracker
{
typedef std::map<KEY, std::shared_ptr<T>> InstanceMap;
- struct StaticData: public LLInstanceTrackerStuff::StaticBase
+ struct StaticData: public LLInstanceTrackerPrivate::StaticBase
{
InstanceMap mMap;
};
@@ -232,7 +235,7 @@ private:
// for logging
template <typename K>
- static K report(K key) { return key; }
+ static std::string report(K key) { return stringize(key); }
static std::string report(const std::string& key) { return "'" + key + "'"; }
static std::string report(const char* key) { return report(std::string(key)); }
@@ -249,8 +252,8 @@ private:
auto pair = map.emplace(key, ptr);
if (! pair.second)
{
- LL_ERRS("LLInstanceTracker") << "Instance with key " << report(key)
- << " already exists!" << LL_ENDL;
+ LLInstanceTrackerPrivate::logerrs(typeid(*this).name(), " instance with key ",
+ report(key), " already exists!");
}
break;
}
@@ -299,7 +302,7 @@ template<typename T, EInstanceTrackerAllowKeyCollisions KEY_COLLISION_BEHAVIOR>
class LLInstanceTracker<T, void, KEY_COLLISION_BEHAVIOR>
{
typedef std::set<std::shared_ptr<T>> InstanceSet;
- struct StaticData: public LLInstanceTrackerStuff::StaticBase
+ struct StaticData: public LLInstanceTrackerPrivate::StaticBase
{
InstanceSet mSet;
};