Go to file
Nat Goodspeed 54b98cb8c1 DRTVWR-493: Defend LL[Param]Singleton against ctor/init exceptions.
An exception in the LLSingleton subclass constructor, or in its
initSingleton() method, could leave the LLSingleton machinery in a bad state:
the failing instance would remain in the MasterList, also on the stack of
initializing LLSingletons. Catch exceptions in either and perform relevant
cleanup.

This problem is highlighted by test programs, in which LL_ERRS throws an
exception rather than crashing the whole process.

In the relevant catch clauses, clean up the initializing stack BEFORE logging.
Otherwise we get tangled up recording bogus dependencies.

Move capture_dependency() out of finishInitializing(): it must be called by
every valid getInstance() call, both from LLSingleton and LLParamSingleton.

Introduce new CONSTRUCTED EInitState value to distinguish "have called the
constructor but not yet the initSingleton() method" from "currently within
initSingleton() method." This is transient, but we execute the 'switch' on
state within that moment. One could argue that the previous enum used
INITIALIZING for current CONSTRUCTED, and INITIALIZED meant INITIALIZING too,
but this is clearer.

Introduce template LLSingletonBase::classname() helper methods to clarify
verbose demangle(typeid(stuff).name()) calls.

Similarly, introduce LLSingleton::pop_initializing() shorthand method.
2019-08-20 12:36:06 -04:00
debian
…
doc SL-11079 Updated contributions.txt 2019-05-28 23:52:23 +03:00
etc
…
indra DRTVWR-493: Defend LL[Param]Singleton against ctor/init exceptions. 2019-08-20 12:36:06 -04:00
scripts merge 2018-09-27 19:54:10 +01:00
.hgignore
…
.hgtags Added tag 6.2.3-release for changeset ab2ec5c5423b 2019-06-20 14:18:41 -04:00
BuildParams remove duplicated EDU definitions 2018-09-05 09:12:21 -04:00
README.md
…
autobuild.xml Pull in a change to Dullahan that allows user to specify flag that lets video/audio autoplay like it did before Chrome 70? (Dullahan v1.1.1320). Also sets a flag in media plugin CEF code to change the settings from false (default) to true 2019-03-18 15:36:16 -07:00
build.sh
…

README.md

Second Life Viewer

This project manages the source code for the Second Life Viewer.

This source is available as open source; for details on licensing, see the licensing page on the Second Life wiki

For information on how to use and contribute to this, see the open source portal on the wiki.

To download the current default version, visit the download page. For even newer versions try the Alternate Viewers page