Go to file
Nat Goodspeed fdc0257acb DRTVWR-564: Fix LLEventDispatcher::addMethod() for LazyEventAPI.
A classic LLEventAPI subclass calls LLEventDispatcher::add() methods in its
own constructor. At that point, addMethod() can reliably dynamic_cast its
'this' pointer to the new subclass.

But because of the way LazyEventAPI queues up add() calls, they're invoked in
the (new) LLEventAPI constructor itself. The subclass constructor body hasn't
even started running, and LLEventDispatcher::addMethod()'s dynamic_cast to the
LLEventAPI subclass returns nullptr. addMethod() claims the new subclass isn't
derived from LLEventDispatcher, which is confusing since it is.

It works to change addMethod()'s dynamic_cast to static_cast.

Flesh out lazyeventapi_test.cpp. post() maps with "op" keys to actually try to
engage the registered operation. Give the operation an observable side effect;
use ensure_mumble() to verify. Also verify that LazyEventAPI has captured the
subject LLEventAPI's metadata in a way we can retrieve.
2022-06-21 15:23:29 -04:00
doc
etc
indra DRTVWR-564: Fix LLEventDispatcher::addMethod() for LazyEventAPI. 2022-06-21 15:23:29 -04:00
scripts
.clang-format
.gitignore
.pre-commit-config.yaml
BuildParams
README.md
autobuild.xml Merge branch master (D540) into DRTVWR-546 2022-04-18 23:42:39 +03:00
build.sh

README.md

Second Life Logo

Second Life is a free 3D virtual world where users can create, connect and chat with others from around the world. This repository contains the source code for the official client.

Open Source

Second Life provides a huge variety of tools for expression, content creation, socialization and play. Its vibrancy is only possible because of input and contributions from its residents. The client codebase has been open source since 2007 and is available under the LGPL license. The Open Source Portal contains additional information about Linden Lab's open source history and projects.

Download

Most people use a pre-built viewer release to access Second Life. Windows and macOS builds are published on the official website. More experimental viewers, such as release candidates and project viewers, are detailed on the Alternate Viewers page.

Third Party Viewers

Third party maintained forks, which include Linux compatible builds, are indexed in the Third Party Viewer Directory.

Build Instructions

Windows

Mac

Linux

Contribute

Help make Second Life better! You can get involved with improvements by filing bugs, suggesting enhancements, submitting pull requests and more. See the open source portal for details.