diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2025-04-06 15:01:28 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-04-07 21:13:48 +0300 | 
| commit | a7a8d6c02e781188ad93280490be495dab5296ab (patch) | |
| tree | e9dca4c5b17eaae0d7e89b136c33cfaaa590dbb5 /indra | |
| parent | 40acaafd9c5b224a6e684db3b09f3360e92ed34e (diff) | |
#3627 std::bad_alloc when loading a model
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/gltfscenemanager.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llmaterialeditor.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 10 | 
3 files changed, 28 insertions, 4 deletions
| diff --git a/indra/newview/gltfscenemanager.cpp b/indra/newview/gltfscenemanager.cpp index c33d15228c..e0cd762776 100644 --- a/indra/newview/gltfscenemanager.cpp +++ b/indra/newview/gltfscenemanager.cpp @@ -69,9 +69,16 @@ void GLTFSceneManager::load()                  {                      return;                  } -                if (filenames.size() > 0) +                try +                { +                    if (filenames.size() > 0) +                    { +                        GLTFSceneManager::instance().load(filenames[0]); +                    } +                } +                catch (std::bad_alloc&)                  { -                    GLTFSceneManager::instance().load(filenames[0]); +                    LLNotificationsUtil::add("CannotOpenFileTooBig");                  }              },              LLFilePicker::FFLOAD_GLTF, diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp index 1e3a328464..28160177f6 100644 --- a/indra/newview/llmaterialeditor.cpp +++ b/indra/newview/llmaterialeditor.cpp @@ -2857,9 +2857,16 @@ void LLMaterialEditor::importMaterial()                  {                      return;                  } -                if (filenames.size() > 0) +                try                  { -                    LLMaterialEditor::loadMaterialFromFile(filenames[0], -1); +                    if (filenames.size() > 0) +                    { +                        LLMaterialEditor::loadMaterialFromFile(filenames[0], -1); +                    } +                } +                catch (std::bad_alloc&) +                { +                    LLNotificationsUtil::add("CannotOpenFileTooBig");                  }              },          LLFilePicker::FFLOAD_MATERIAL, diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index dba48012ac..f922a9d178 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2408,6 +2408,16 @@ Unable to upload snapshot.  File might be too big, try reducing resolution or try again later.    <tag>fail</tag>    </notification> +     +  <notification +   icon="alertmodal.tga" +   name="CannotOpenFileTooBig" +   type="alertmodal"> +Unable to open file. + +Viewer run out of memory while opening file. File might be too big. +  <tag>fail</tag> +  </notification>    <notification     icon="notifytip.tga" | 
