summaryrefslogtreecommitdiff
path: root/indra/llcommon
AgeCommit message (Collapse)Author
2012-10-19merge back late fix for MAINT-1753Oz Linden
2012-10-18MAINT-1753: Correcting behavior of ll_aligned_realloc_16() on Linux to avoid ↵William Todd Stinson
memory corruption in the case that the new memory size requested is smaller than the old memory size. Also, adding check to ensure that the aligned malloc returns a non-null value before memcopying.
2012-10-15pull back 3.4.1-beta7 fixesOz Linden
2012-10-11MAINT-1684: Correcting the calls to ll_aligned_free() which should have ↵William Todd Stinson
actually been to ll_aligned_free_16().
2012-10-11MAINT-1684: Attempt at correcting the linux crash on startup. Replacing the ↵William Todd Stinson
memory allocations and frees in the LLPrivateMemoryPool with aligned memory allocations and frees.
2012-10-10pull back 3.4.1-beta6 fixesOz Linden
2012-10-04merge changes for DRTVWR-222Oz Linden
2012-10-03Fix for mac/linux buildDave Parks
2012-10-03Fix non-thread-safe refcounting of LLHTTPClient::Responder and fix ↵Dave Parks
out-of-order deletion of LLTextureFetch on shutdown
2012-10-02Instrument debug builds on windows to help track down source of heap corruptionDave Parks
2012-10-01Only enable breakpad error handing if crash reporting is enabledDave Parks
2012-09-20Pull and merge from ↵William Todd Stinson
ssh://hg@bitbucket.org/stinson_linden/viewer-beta-drtvwr-179.
2012-09-12re-merge changes to disable tcmallocOz Linden
2012-09-12merge increment of version numberOz Linden
2012-09-12increment version to 3.4.2Oz Linden
2012-09-12MAINT-1503 Minimal set of changes needed to safely disable tcmallocDave Parks
2012-09-12initial attempt to restore changes that make removing tcmalloc possible; not ↵Oz Linden
tested
2012-09-10Backing out the changes contributing to DRTVWR-167 and DRTVWR-179 from the ↵William Todd Stinson
repository.
2012-08-15merge back beta fixesOz Linden
2012-08-08Automated merge with http://hg.secondlife.com/viewer-developmentNat Goodspeed
2012-08-08Add implementation comments to LLHandle.Nat Goodspeed
I recently tried to wade through llhandle.h and got somewhat perplexed. Armed with an explanation from Richard, I've added notes to the file to try to make it a bit less mysterious.
2012-08-08Move llhandle.h into llcommon; same generality as llpointer.h.Nat Goodspeed
Leaving llhandle.h in llui restricts the set of viewer project directories which could potentially use it, and there's nothing whatsoever UI-specific about it.
2012-08-03Merge with lindenlab/viewer-developmentsimon@Simon-PC.lindenlab.com
2012-08-02MAINT-515 FIX, CHOP-100 FIX - technically we are avoiding these issues ↵Brad Payne (Vir Linden)
rather than fixing them; changing llcommon to be statically linked avoids the symbol issues with llcommon.dll
2012-07-31Merge in viewer-developmentsimon@Simon-PC.lindenlab.com
2012-07-28Automated merge with http://hg.secondlife.com/viewer-developmentNat Goodspeed
2012-09-28Re-enabling tcmalloc in the build.William Todd Stinson
2012-07-27increment version to 3.4.1Oz Linden
2012-07-25increment version to 3.4.0Oz Linden
2012-07-24merge to viewer-developmentoOz Linden
2012-07-23Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-release.Todd Stinson
2012-07-19MAINT-1175: Use workaround for comparing std::type_info* on gcc < 4.4.Nat Goodspeed
We now specialize std::less<const std::type_info*> to use std::type_info::before(), and on Windows and Mac that Just Works. It even works on Linux when using gcc 4.4+: more recent implementations of gcc's std::type_info::before() apparently do name()-string comparisons internally. It doesn't work so well on Linux with gcc 4.1, though, and that's the compiler we still use on our Linux build-farm machines. But rather than give up, perform explicit name()-string comparison in that case.
2012-07-18MAINT-1175: Ditch LLTypeInfoLookup, make map<const type_info*> work.Nat Goodspeed
Instead of forbidding std::map<const std::type_info*, ...> outright (which includes LLRegistry<const std::type_info*, ...> and LLRegistrySingleton<const std::type_info*, ...>), try to make it work by specializing std::less<const std::type_info*> to use std::type_info::before(). Make LLRegistryDefaultComparator<T> use std::less<T> so it can capitalize on that specialization.
2012-07-18MAINT-1175: merge backout LLRegistrySingleton<std::type_info::name()>Nat Goodspeed
2012-07-18Backed out changeset a25bfa87418d (using std::type_info::name())Nat Goodspeed
The changeset above touched every consumer of the two LLRegistrySingletons originally defined with std::type_info* as keys. Those two LLRegistrySingletons were changed to use const char* as keys, then all consumers were changed to pass std::type_info::name() instead of the plain std::type_info* pointer -- to deal with the observed fact that on Linux, a given type might produce different std::type_info* pointers in different load modules. Since then, Richard turned up the fascinating fact that at least some implementations of gcc's std::type_info::before() method already accommodate this peculiarity. It seems worth backing out the (dismayingly pervasive) change to see if properly using std::type_info::before() as the map comparator will work just as well, with conceptually simpler source code. This backout is transitional: we don't expect things to build/run properly until we've cherry-picked certain other pertinent changes.
2012-07-16MAINT-1175: Pass boost::unordered_map hash/equals functors for char*.Nat Goodspeed
boost::unordered_map<const char*, ...> does NOT, by default, "do the right thing." Give it hash and equality functors that do.
2012-07-12MAINT-1175: Linux viewer built on TC is broken, built on dev box works.Nat Goodspeed
Try to diagnose the cause of the misbehavior with a BOOST_STATIC_ASSERT.
2012-07-11Pull in viewer-development because it's painful. Merge with runitai's help.simon@Simon-PC.lindenlab.com
2012-07-11MAINT-1175: Properly pass LLRegistry's COMPARATOR to underlying map.Nat Goodspeed
Although LLRegistry and LLRegistrySingleton have always defined a COMPARATOR template parameter, it wasn't used for the underlying map. Therefore every type, including any pointer type, was being compared using std::less. This happens to work most of the time -- but is tripping us up now. Pass COMPARATOR to underlying std::map. Fix a couple minor bugs in LLRegistryDefaultComparator (never before used!). Specialize for const char*. Remove CompareTypeID and LLCompareTypeID because we now actively forbid using LLRegistry<std::type_info*, ...>; remove only known reference (LLWidgetNameRegistry definition).
2012-07-11MAINT-1175: Change LLTypeInfoLookup API for future optimizations.Nat Goodspeed
Per discussion with Richard, accept the type key for insert() and find() as a template parameter rather than as std::type_info*. This permits (e.g.) some sort of compile-time prehashing for common types, without changing the API. Eliminate iterators from the API altogether, thus avoiding costs associated with transform_iterator. Fix existing references in llinitparam.h.
2012-07-11MAINT-1175: Forbid LLRegistry[Singleton]<std::type_info*, ...>.Nat Goodspeed
Back out code that selects LLTypeInfoLookup for the underlying map implementation when KEY = [const] std::type_info*, because LLTypeInfoLookup's API is changing to become incompatible with std::map. Instead, fail with STATIC_ASSERT when LLRegistry's KEY is [const] std::type_info*. Fix all existing uses to use std::type_info::name() string instead.
2012-07-10MAINT-1175: Still grappling with MSVC idiosyncracies.Nat Goodspeed
Maybe it's failing to correctly handle overloaded transform() methods?
2012-07-10MAINT-1175: Fix Windows build.Nat Goodspeed
It seems MSVC doesn't like boost::make_transform_iterator() in the context I was using it. Try directly invoking the iterator's constructor.
2012-07-10MAINT-1175: Reimplement LLTypeInfoLookup for better lookup failure.Nat Goodspeed
The original LLTypeInfoLookup implementation was based on two assumptions: small overall container size, and infrequent normal-case lookup failures. Those assumptions led to binary-searching a sorted vector, with linear search as a fallback to cover the problem case of two different type_info* values for the same type. As documented in the Jira, this turned out to be a problem. The container size was larger than expected, and failed lookups turned out to be far more common than expected. The new implementation is based on a hash map of std::type_info::name() strings, which should perform equally well in the success and failure cases: no special-case fallback logic.
2012-06-29Merge simon/viewmaster-merge for latest maint worksimon@Simon-PC.lindenlab.com
2012-06-28MergeDave Parks
2012-06-28mergeDave Parks
2012-06-27MAINT-1173 : Top Scripts: Break down usage by parcel. Follow-on code to addsimon@Simon-PC.lindenlab.com
per-parcel filtering. Reviewed by Kelly
2012-06-27merge changes for DRTVWR-167Oz Linden
2012-06-26merge to latest viewer-development-havokaiOz Linden