diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 7de74ab19f..8735be9c06 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -390,17 +390,31 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle) LL_DEBUGS("AppInit", "Capabilities", "Teleport") << "received caps for handle " << regionHandle << " region name " << regionp->getName() << LL_ENDL; - regionp->setCapabilitiesReceived(true); + // setCapabilitiesReceived moved to postToMainCoro below break; } while (true); - if (regionp && regionp->isCapabilityAvailable("ServerReleaseNotes") && - regionp->getReleaseNotesRequested()) - { // *HACK: we're waiting for the ServerReleaseNotes - regionp->showReleaseNotes(); - } + LLAppViewer::instance()->postToMainCoro( + [regionHandle]() + { + if (!LLWorld::instanceExists()) + { + return; + } + LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle); + if (!regionp) + { + return; + } + regionp->setCapabilitiesReceived(true); + if (regionp->isCapabilityAvailable("ServerReleaseNotes") && + regionp->getReleaseNotesRequested()) + { // *HACK: we're waiting for the ServerReleaseNotes + regionp->showReleaseNotes(); + } + }); }