diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-03-29 19:57:02 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-03-29 21:48:47 +0300 | 
| commit | a41855ac54229385c612f48bc1adf184db526460 (patch) | |
| tree | ceaf55ccc5dc0a999e915a85eca70f4e102fe3ec /indra | |
| parent | 3f0a0051ba7cd54ddd83daed392996d9b23b9ee1 (diff) | |
SL-17059 SEH crash at getRenderInfoFromRegion
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llavatarrenderinfoaccountant.cpp | 28 | 
1 files changed, 21 insertions, 7 deletions
diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp index ca83afb5ab..e6190f7210 100644 --- a/indra/newview/llavatarrenderinfoaccountant.cpp +++ b/indra/newview/llavatarrenderinfoaccountant.cpp @@ -295,9 +295,16 @@ void LLAvatarRenderInfoAccountant::sendRenderInfoToRegion(LLViewerRegion * regio          // make sure we won't re-report, coro will update timer with correct time later          regionp->getRenderInfoReportTimer().resetWithExpiry(SECS_BETWEEN_REGION_REPORTS); -        std::string coroname = -            LLCoros::instance().launch("LLAvatarRenderInfoAccountant::avatarRenderInfoReportCoro", -            boost::bind(&LLAvatarRenderInfoAccountant::avatarRenderInfoReportCoro, url, regionp->getHandle())); +        try +        { +            std::string coroname = +                LLCoros::instance().launch("LLAvatarRenderInfoAccountant::avatarRenderInfoReportCoro", +                    boost::bind(&LLAvatarRenderInfoAccountant::avatarRenderInfoReportCoro, url, regionp->getHandle())); +        } +        catch (std::bad_alloc&) +        { +            LL_ERRS() << "LLCoros::launch() allocation failure" << LL_ENDL; +        }  	}  } @@ -318,10 +325,17 @@ void LLAvatarRenderInfoAccountant::getRenderInfoFromRegion(LLViewerRegion * regi          // make sure we won't re-request, coro will update timer with correct time later          regionp->getRenderInfoRequestTimer().resetWithExpiry(SECS_BETWEEN_REGION_REQUEST); -		// First send a request to get the latest data -        std::string coroname = -            LLCoros::instance().launch("LLAvatarRenderInfoAccountant::avatarRenderInfoGetCoro", -            boost::bind(&LLAvatarRenderInfoAccountant::avatarRenderInfoGetCoro, url, regionp->getHandle())); +        try +        { +            // First send a request to get the latest data +            std::string coroname = +                LLCoros::instance().launch("LLAvatarRenderInfoAccountant::avatarRenderInfoGetCoro", +                    boost::bind(&LLAvatarRenderInfoAccountant::avatarRenderInfoGetCoro, url, regionp->getHandle())); +        } +        catch (std::bad_alloc&) +        { +            LL_ERRS() << "LLCoros::launch() allocation failure" << LL_ENDL; +        }  	}  }  | 
