The problem was that class-static LLUrlEntryParcel::sRegionHost was being
initialized by copying class-static LLHost::invalid. Naturally, these two
statics are initialized in different source files. Since C++ makes no promises
about the relative order in which objects in different object files are
initialized, it seems we hit a case in which we were trying to initialize
sRegionHost by copying a completely uninitialized LLHost::invalid.
In general we might attempt to address such cross-translation-unit issues by
introducing an LLSingleton. But in this particular case, the punch line is
that LLHost::invalid is explicitly constructed identically to a
default-constructed LLHost! In other words, LLHost::invalid provides nothing
we couldn't get from LLHost(). All it gives us is an opportunity for glitches
such as the above.
Remove LLHost::invalid and all references, replacing with LLHost().
Made LLCacheName getGroupName() and getName() methods return TRUE if the given group/avatar name is NULL, so that LLNameBox doesn't display "Loading..." indefinitely.
There's nothing to wait for in case of NULL id: the name cache returns a predefined name that won't change (i.e. it's the final result).
Reviewed by Mike: https://codereview.productengine.com/secondlife/r/223/
--HG--
branch : product-engine
Added temporary getDisplayName() to LLCacheName
Moved temporary placeholder display names into LLCacheName
Eliminated rarely used LLAgentUI::buildName in favor of buildFullName
Standardized buildFullName capitalization
Changed callback signature to full_name instead of first_name,last_name
Eliminated all calls to legacy (non-signal/non-boost-bind) lookup mechanism
Change Pay dialog names to SLURL links
Tweaked layout of Pay Resident and Pay via Object floaters to make SLURLs fit
Consolidate name first + " " + last concatenation in LLCacheName::buildFullName()
Reviewed with Kelly
svn merge -r107352:108210
svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.25
Merge conflicts were resolved:
scripts/start-server : one conflict, kept the "working" version
indra/llcommon/llversionserver.h : reverted
indra/newview/Info-SecondLife.plist : reverted
indra/newview/res/viewerRes.rc : reverted
indra/newsim/llagentinfo.cpp : kept *both*... "working" had
is_agent_online, which nothing else had, and the merge had
isGodAllowed(), part of SEC resolution
indra/backbone/agent_router.py : kartic & rdw merged and reviewed
using brains and things
indra/newsim/llsimhttpresponder.cpp : doesn't exist in trunk, and
that's OK (even though there was a change for it)