summaryrefslogtreecommitdiff
path: root/indra/llcommon/llinstancetracker.h
AgeCommit message (Collapse)Author
2012-12-23SH-3468 WIP add memory tracking base classRichard Linden
fixed crash on exit by making LLInstanceTracker iterators use atomic iterator nesting count for thread safety
2012-11-01SH-3405 FIX convert existing stats to lltrace systemRichard Linden
final removal of remaining LLStat code
2012-02-27Make LLInstanceTracker<T, T*>::getInstance(T*) validate passed T*.Nat Goodspeed
For the T* specialization (no string, or whatever, key), the original getInstance() method simply returned the passed-in T* value. It was defined, as the comments noted, for completeness of the analogy with the keyed LLInstanceTracker specialization. It turns out, though, that getInstance(T*) can still be useful to ask whether the T* you have in hand still references a valid T instance. Support that usage.
2011-10-17fixed one crash on exitRichard Nelson
2011-09-07STORM-1541: Change llassert() to llassert_always(): unit tests expect.Nat Goodspeed
Now that we have unit tests that require assertion failure if you try to delete an LLInstanceTracker subclass instance with an iterator loose, having llassert() "sometimes" compile away (whimsically, depending on platform as well as build type!) makes those tests fail. Use llassert_always() instead.
2011-09-06STORM-1541: Hoist LLInstanceTracker::getMap_() to base getStatic().Nat Goodspeed
Generalize the notion of getting some chunk of "static" storage: introduce LLInstanceTrackerBase::getStatic() template method. Define StaticData struct containing the InstanceMap (or InstanceSet, for that specialization) along with the S32 that caused the VS2010 linker so much grief. Completely eliminate that S32 as an actual class-static member, qualifying all references with the struct returned by getStatic(). In LLInstanceTrackerBase::getInstances(), use one std::map lookup instead of three.
2011-08-24Re-add 3 llinstancetracker tests disabled by changeset 1ead63777bf6.Nat Goodspeed
Fix LLInstanceTracker::key_iter constructor param; accepting InstanceMap::iterator by non-const reference relied on Microsoft extension that accepts non-const reference to an rvalue. Given typical iterator implementation, simply accept by value instead, which makes gcc happy too.
2011-07-27Swap typename and const.Aaron Stone
2011-07-27another potential gcc fixRichard Nelson
2011-07-27broken operator= semantics for instance tracker iteratorsRichard Nelson
2011-07-27 another fix for buildRichard Nelson
2011-07-26fixed buildRichard Nelson
2011-07-26removed last vestiges of llinstancetracerscopedguardRichard Nelson
2011-07-26EXP-1021 FIX Position of web content browser dictates position of profile ↵Richard Nelson
panel - profile panel position changes do not persist EXP-1030 FIX Search button toggle can get out of synch in bottom bar made llinstancetracker::iterator do own nested level management (removing need for separate guard) added support for filename= to floaters can pass in arbitrary window_class to floaters
2011-03-09Fix for "doubleton" error using LLInstanceTracker across shared library ↵brad kittenbrink
boundaries.
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-02-06EXT-5055 LLInstanceTracker promotes some dangerous patterns - detect themTofu Linden
2009-11-11Rename private methods to avoid ambiguity with subclassesNat Goodspeed
2009-11-10Enhance LLInstanceTracker variants to be more uniform.Nat Goodspeed
For both the (so far unused) generic KEY form and the KEY = T* form, provide key_iter, beginKeys(), endKeys(). Change instance_iter so that when dereferenced, it gives you a T& rather than a T*, to be more harmonious with a typical STL container. (You parameterize LLInstanceTracker with T, not with T*.) Fix existing usage in llfasttimer.cpp and lltimer.cpp to agree. For the KEY = T* specialization, add T* getInstance(T*) so client isn't forced to know which variant was used. Add unit tests for uniformity of public operations on both variants.
2009-10-16svn revert -r136312 llinstancetracker.h - reverted changed to instance ↵Richard Nelson
tracker that won't work with llcommon.dll
2009-10-14fixed a bug in LLFastTimer data gathering, and made them even faster (122 ↵Richard Nelson
cycles on my 2.5Ghz Xeon) can call LLFastTimer::nextFrame with timers still on the stack...first step towards more flexible data gathering LLInstanceTracker works with statically allocated instances now reviewed by Brad
2009-06-21merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3Steven Bennetts
ignore-dead-branch