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().
-> Description:
- changed : LLCacheName::buildUsername() will properly extract the username if the passed name is a "complete name"
-> "Catznip Catnap" => "catznip.catnap"
-> "Catznip Tester (catznip.catnap)" => "catznip.catnap"
- fixed : P2P IM session names are inconsistent (chiclet hover tip shows the legacy name rather than the complete name for incoming IM sessions)
-> incoming IM session would have a session name of "Catznip Catnap" (legacy name)
-> outgoing IM session would have a session name of "Catznip Tester (catznip.catnap)" (complete name)
-> standarized P2P IM session names to "complete name"
- added : LLIMModel::buildIMP2PLogFilename() to have one single function to construct log filenames for P2P IMs
- fixed : teleport offers to another avie are logged to the wrong file when no IM session is open for that avie
-> open IM session => logged to "catznip_catnap.txt"
-> no open IM session => logged to "Catznip Catnap.txt"
- fixed : inventory offers to another avie are logged to the wrong file when no IM session is open for that avie
-> no open IM session => logged to "Catznip Catnap.txt"
- fixed : inventory accepted/declined notifications are logged to the wrong file
-> no open IM session => logged to secondlife____app_agent_<uuid>_completename.txt
- added : "UseLegacyIMLogNames" setting to use "old-style" log filenames for P2P IM sessions (TRUE by default)
-> needed for people who mix older and newer viewers
-> side-steps any other remaining bugs due to log filename change
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