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-06 22:40:42 +0300 | 
| commit | f6a2dbe6ec3dbe059ca25cfcd2348619aeacb46b (patch) | |
| tree | ac25cde90c2cc0d1a8197afc5b94e89a68eb2dbc /indra | |
| parent | cc54e206c3ea390a3a14829a4ac40ce5d98f5965 (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 509a8eec38..1a56d7e3a3 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" | 
