Commit Graph

23276 Commits (5e1e44ca7ea6fdbfb34a3a3968d5f07fc0ff3d7a)

Author SHA1 Message Date
Nat Goodspeed 5e1e44ca7e MAINT-1175: merge backout LLRegistrySingleton<std::type_info::name()> 2012-07-18 16:31:22 -04:00
Nat Goodspeed 7f609b6a69 Backed out changeset a25bfa87418d (using std::type_info::name())
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-18 15:51:34 -04:00
Nat Goodspeed 55a7bdf8d3 MAINT-1175: Pass boost::unordered_map hash/equals functors for char*.
boost::unordered_map<const char*, ...> does NOT, by default, "do the right
thing." Give it hash and equality functors that do.
2012-07-16 21:05:23 -04:00
Nat Goodspeed 79a171209f MAINT-1175: Linux viewer built on TC is broken, built on dev box works.
Try to diagnose the cause of the misbehavior with a BOOST_STATIC_ASSERT.
2012-07-12 13:19:26 -04:00
Nat Goodspeed 709c1eeae9 MAINT-1175: Properly pass LLRegistry's COMPARATOR to underlying map.
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-11 14:13:45 -04:00
Nat Goodspeed 578d70dec0 MAINT-1175: Change LLTypeInfoLookup API for future optimizations.
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-11 08:20:14 -04:00
Nat Goodspeed 18bd525d00 MAINT-1175: Forbid LLRegistry[Singleton]<std::type_info*, ...>.
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-11 08:14:34 -04:00
Nat Goodspeed 7003527409 MAINT-1175: Still grappling with MSVC idiosyncracies.
Maybe it's failing to correctly handle overloaded transform() methods?
2012-07-10 17:29:58 -04:00
Nat Goodspeed 00ae56334c MAINT-1175: Fix Windows build.
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-10 16:41:26 -04:00
Nat Goodspeed b6ffedb03d MAINT-1175: Reimplement LLTypeInfoLookup for better lookup failure.
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-07-10 15:46:27 -04:00
Oz Linden 90547ff411 Added tag 3.3.3-release for changeset 6428242e124b 2012-06-21 16:44:04 -04:00
Oz Linden 1d23a8600c Added tag 3.3.3-beta3 for changeset 4b3c68199a86 2012-06-18 22:15:33 -04:00
Oz Linden ba01c76e1f tag merge of DRTVWR-169 2012-06-18 22:12:15 -04:00
Nat Goodspeed 84536935eb MAINT-1144: Update with relevant apr_suite fix. 2012-06-18 16:14:30 -04:00
Nat Goodspeed 667ca78b49 MAINT-1144: Update to apr_suite containing relevant fix. 2012-06-18 12:57:55 -04:00
Oz Linden c931c74fdb Added tag 3.3.3-beta2 for changeset fdcc08a4f20a 2012-06-09 08:19:14 -04:00
Oz Linden 9ee115f5e5 tag merge of DRTVWR-165 2012-06-09 07:06:38 -04:00
Brad Payne (Vir Linden) 9f000e4b34 SH-3153 FIX 2012-06-08 15:49:11 -04:00
Oz Linden 6abcd55b50 merge changes for DRTVWR-162 2012-06-08 11:41:10 -04:00
Oz Linden 9ead6d8e5b tag merge of DRTVWR-162 2012-06-08 11:40:57 -04:00
Oz Linden fd14738857 tag merge of DRTVWR-164 2012-06-08 10:49:21 -04:00
Nat Goodspeed ce563795e1 MAINT-1144: Merge llhttpclient_test.cpp fix back to tip 2012-06-07 05:47:50 -04:00
Nat Goodspeed d167ebe35f MAINT-1144: Try to fix Windows build error in llhttpclient_test.cpp. 2012-06-07 05:46:47 -04:00
Nat Goodspeed 89ea7ccfc7 Automated merge with file:///Users/nat/linden/viewer-maint-1144 2012-06-06 23:21:07 -04:00
Nat Goodspeed 3d1cb7ef11 MAINT-1144: Re-enable skipped LLHTTPClient tests with local server.
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-06 23:12:11 -04:00
Nat Goodspeed cd05a244da MAINT-1144: Break out llhttpclient_tut as standalone integration test.
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-06 19:57:58 -04:00
Nat Goodspeed da6c5fbf7f MAINT-1144: Unblock build for previous commit.
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-06 19:05:51 -04:00
Nat Goodspeed 166f75d91f MAINT-1144: Defend against NULL LLPluginProcessParent::mProcess.
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-06 16:38:16 -04:00
Oz Linden fd3ae758d0 Added tag 3.3.3-beta1, DRTVWR-144 for changeset f0a174c2adb4 2012-06-04 21:11:54 -04:00
Oz Linden 332523b0d6 tag merge of DRTVWR-160 2012-06-04 21:08:40 -04:00
Aura Linden 0fd3ff972d MAINT-1142 use VBO pooling on OSX 2012-06-04 12:15:08 -07:00
Oz Linden 3361b5e9e2 Added tag DRTVWR-144, 3.3.3-beta1 for changeset 1b7f311b5a5d 2012-05-29 18:09:09 -04:00
Oz Linden 0f6ba6c514 merge changes for DRTVWR-153 2012-05-29 17:50:26 -04:00
Oz Linden a46b820b0c tag merge of DRTVWR-153 2012-05-29 17:50:05 -04:00
Oz Linden 6ea9848387 merge changes for DRTVWR-155 2012-05-29 14:49:20 -04:00
Oz Linden 380c0eb5ac tag merge of DRTVWR-155 2012-05-29 14:48:55 -04:00
Oz Linden 4cffd32f90 merge back change to force ticket number from viewer-release 2012-05-29 13:31:06 -04:00
Oz Linden 81870e09c9 merge changes for DRTVWR-148 2012-05-29 12:42:53 -04:00
Oz Linden 5db5102fe0 tag merge of DRTVWR-148 2012-05-29 12:42:50 -04:00
Oz Linden a519e34f02 inconsequential change to force new ticket number 2012-05-28 09:23:24 -04:00
Oz Linden b2baee8e34 merge changes for DRTVWR-156 2012-05-26 06:50:55 -04:00
Oz Linden b8d248f275 tag merge of DRTVWR-156 2012-05-26 06:49:40 -04:00
simon@Simon-PC.lindenlab.com 1777fa5187 Merge pull from lindenlab/viewer-development as requested by Oz for DRTVWR-148 2012-05-25 15:07:22 -07:00
Oz Linden ee66cb3efc merge back beta tags 2012-05-25 14:22:33 -04:00
Oz Linden 3e8dab32ee merge changes for DRTVWR-154 2012-05-24 22:01:34 -04:00
Oz Linden 1d01ad1162 merge changes for DRTVWR-151 2012-05-24 20:35:25 -04:00
eli 335a8254ae FIX VWR-23844 VWR-26542 VWR-28950 2012-05-24 17:16:56 -07:00
eli 7f84b370cc sync with viewer-release 2012-05-24 17:07:04 -07:00
Oz Linden 5ef8372e43 retag to force rebuild 2012-05-24 18:10:31 -04:00
Oz Linden b2b446aed7 Added tag viewer-release-candidate, 3.3.2-release for changeset 675668bd24d3 2012-05-24 10:01:24 -04:00