From 4043636c59da428e96ac32de7399e438f32a1ad3 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 17 Jun 2020 19:45:41 +0300 Subject: SL-13471 Fix for textureLoadedCallback crash --- indra/newview/llfloatermodelpreview.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index bc44e37c5a..e6a3d713e7 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -4374,7 +4374,20 @@ void LLModelPreview::textureLoadedCallback( BOOL final, void* userdata ) { - LLModelPreview* preview = (LLModelPreview*) userdata; + if (!LLFloaterModelPreview::sInstance) + { + return; + } + + // there is a chance that user will manage to open floater second + // time right after closing it, while textures are still loading + // this needs a reliable method to check validity of userdata + LLModelPreview* preview = (LLModelPreview*) userdata; + if (preview != LLFloaterModelPreview::sInstance->mModelPreview) + { + return; + } + preview->refresh(); if(final && preview->mModelLoader) -- cgit v1.2.3