diff options
author | Richard Linden <none@none> | 2013-09-09 18:58:41 -0700 |
---|---|---|
committer | Richard Linden <none@none> | 2013-09-09 18:58:41 -0700 |
commit | 52da9f5f49e0e300943abc3afa6944e6bee0cdd1 (patch) | |
tree | b61a1aa1775b3faca1baf492a969a51d7ce8b3fe /indra/llcommon/llinstancetracker.cpp | |
parent | 55ae6a7962cdc9a9d7d087fbc529d30db9c37013 (diff) | |
parent | 91850b6cfacb32ed32265ebd37ce7690dd79a0b0 (diff) |
merge with viewer-release
Diffstat (limited to 'indra/llcommon/llinstancetracker.cpp')
-rwxr-xr-x | indra/llcommon/llinstancetracker.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/indra/llcommon/llinstancetracker.cpp b/indra/llcommon/llinstancetracker.cpp index 5dc3ea5d7b..7ff8324fe3 100755 --- a/indra/llcommon/llinstancetracker.cpp +++ b/indra/llcommon/llinstancetracker.cpp @@ -27,23 +27,25 @@ #include "linden_common.h" // associated header #include "llinstancetracker.h" +#include "llapr.h" + // STL headers // std headers // external library headers // other Linden headers -//static -void * & LLInstanceTrackerBase::getInstances(std::type_info const & info) +void LLInstanceTrackerBase::StaticBase::incrementDepth() +{ + apr_atomic_inc32(&sIterationNestDepth); +} + +void LLInstanceTrackerBase::StaticBase::decrementDepth() { - typedef std::map<std::string, void *> InstancesMap; - static InstancesMap instances; + apr_atomic_dec32(&sIterationNestDepth); +} - // std::map::insert() is just what we want here. You attempt to insert a - // (key, value) pair. If the specified key doesn't yet exist, it inserts - // the pair and returns a std::pair of (iterator, true). If the specified - // key DOES exist, insert() simply returns (iterator, false). One lookup - // handles both cases. - return instances.insert(InstancesMap::value_type(info.name(), - InstancesMap::mapped_type())) - .first->second; +U32 LLInstanceTrackerBase::StaticBase::getDepth() +{ + apr_uint32_t data = apr_atomic_read32(&sIterationNestDepth); + return data; } |