From 4043636c59da428e96ac32de7399e438f32a1ad3 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
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(-)

(limited to 'indra')

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