summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
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-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-08SH-3153 FIXBrad Payne (Vir Linden)
2012-06-08merge changes for DRTVWR-162Oz Linden
2012-06-07MAINT-1144: Merge llhttpclient_test.cpp fix back to tipNat Goodspeed
2012-06-07MAINT-1144: Try to fix Windows build error in llhttpclient_test.cpp.Nat Goodspeed
2012-06-06Automated merge with file:///Users/nat/linden/viewer-maint-1144Nat Goodspeed
2012-06-06MAINT-1144: Re-enable skipped LLHTTPClient tests with local server.Nat Goodspeed
Over the years we've skipped more and more of the tests in llhttpclient_test.cpp (nee llhttpclient_tut.cpp) because they've relied on particular behaviors from Internet sites not under our control. We skipped a test that fetches llsd+xml from secondlife.com because "secondlife.com is not reliable enough for unit tests." We skipped a test that tries to observe a failure with "http://www.invalid" because some local ISPs turn "no such domain" DNS errors into valid pages offering the requester to buy the specified domain name. Today we've had to skip tests attempting to contact "http://www.google.com" for reasons we haven't yet diagnosed, but that probably have to do with Google's IPv6 rollout. Use local temp server test_llsdmessage_peer.py as the success destination, eliminating DNS, Internet access and remote server behavior as failure modes. Use idle localhost port for failure test. Re-enable all skipped LLHTTPClient tests! Re-enable on Windows! In support of these tests, modify test_llsdmessage_peer.py: Support HEAD as no-data variant of GET. Change GET result dict to avoid resembling an error response -- confusing. Make GET/POST return actual dict rather than undecorated string "success". Because of that last, change llcapabilitylistener_test.cpp and llsdmessage_test.cpp to extract "reply" key from response rather than expecting response to be a string itself.
2012-06-06MAINT-1144: Break out llhttpclient_tut as standalone integration test.Nat Goodspeed
indra/test/llhttpclient_tut.cpp ==> indra/llmessage/tests/llhttpclient_test.cpp, with corresponding CMakeLists.txt changes in their respective directories. This first commit merely moves the test source file without changing it -- separating out moves from edits simplifies code review.
2012-06-06MAINT-1144: Unblock build for previous commit.Nat Goodspeed
Today, 2012-06-06, LLHTTPClient::get("http://www.google.com/") has stopped working. This is unrelated to viewer code changes: it crosses repo boundaries. Skip the afflicted tests to get builds working until we can recast the tests to avoid the flaky dependency.
2012-06-06MAINT-1144: Defend against NULL LLPluginProcessParent::mProcess.Nat Goodspeed
The change from LLProcessLauncher to LLProcess introduces the possibility of a NULL (default-constructed) LLProcessPtr. Add certain static LLProcess methods accepting LLProcessPtr, forwarding to nonstatic method when non-NULL but doing something reasonable with NULL. Use these methods in LLPLuginProcessParent.
2012-06-04MAINT-1142 use VBO pooling on OSXAura Linden
2012-05-29merge changes for DRTVWR-153Oz Linden
2012-05-29merge changes for DRTVWR-155Oz Linden
2012-05-29merge changes for DRTVWR-148Oz Linden
2012-05-26merge changes for DRTVWR-156Oz Linden
2012-05-25Merge pull from lindenlab/viewer-development as requested by Oz for DRTVWR-148simon@Simon-PC.lindenlab.com
2012-05-24merge changes for DRTVWR-154Oz Linden
2012-05-24merge changes for DRTVWR-151Oz Linden
2012-05-24FIX VWR-23844 VWR-26542 VWR-28950eli
2012-05-24sync with viewer-releaseeli
2012-05-22merge changes for DRTVWR-152Oz Linden
2012-05-22merge changes for DRTVWR-149Oz Linden
2012-05-22merge changes for DRTVWR-147Oz Linden
2012-05-21MAINT-938 ADDITIONAL FIX (Make debit-permissions dialog give a stronger warning)Paul ProductEngine
- Fix for potential truncation
2012-05-18MAINT-959 FIX [PUBLIC]Trouble resizing tabbed floatersRichard Linden
don't auto position other floater when it is hosted
2012-05-18MAINT-938 ADDITIONAL FIX (Make debit-permissions dialog give a stronger warning)Paul ProductEngine
- Requested permissions are added dynamically to the dialog's footer - And the footer is not shown when it is empty
2012-05-17MAINT-1092 Fix for broken avatar bakes on some AMD graphics cards.Dave Parks
2012-05-17MAINT-938 FIXED (Make debit-permissions dialog give a stronger warning)Paul ProductEngine
- Added new tag called "footer" to the notification. This tag allows to display messages under the buttons in toasts. - Created new class LLToastScriptQuestion for the "ScriptQuestionCaution" notification. This notification supports tag <footer>.
2012-05-16MAINT-862 and ER-1781 : Sounds not playing the first time. Reviewed by Kelly.simon@Simon-PC.lindenlab.com
2012-05-16FIX VWR-23844 VWR-26542 VWR-28950eli
2012-05-14partial fix for SH-3132 - reduce max concurrent http requests to same level ↵Brad Payne (Vir Linden)
as in release
2012-05-09CHOP-900: Fix test.cpp merge errors merging up to viewer-releaseNat Goodspeed
2012-05-09Automated merge with http://hg.secondlife.com/viewer-releaseNat Goodspeed
2012-05-09SH-3075 : Fix reversible compression for very small textures. Also supress ↵Merov Linden
the forcing to reversible for small textures.
2012-05-09CHOP-900: Use new apr_procattr_constrain_handle_set() extension.Nat Goodspeed
Now LLProcess explicitly requests APR to limit the handles passed to any child process, instead of wantonly passing whatever happens to be lying around the parent process at the time. This requires the latest APR build. Also revert LLUpdateDownloader::Implementation::mDownloadStream to llofstream (as in rev 1878a57aebd7) instead of apr_file_t*. Using APR for that file was a Band-Aid -- a single whacked mole -- for the problem more systemically addressed by apr_procattr_constrain_handle_set().
2012-05-08SH-3047 : Fix lossless compression for small textures.Merov Linden
2012-05-08SH-3047 : Tweak of the performance compression data gathering codeMerov Linden
2012-05-04increment viewer version to 3.3.3Oz Linden
2012-05-04merge changes for drtvwr-142Oz Linden