Prechádzať zdrojové kódy

Don't hide out-of-memory during FBX import

Jan Krassnigg 2 rokov pred
rodič
commit
08f2f0f82f
1 zmenil súbory, kde vykonal 8 pridanie a 0 odobranie
  1. 8 0
      code/AssetLib/FBX/FBXDocument.cpp

+ 8 - 0
code/AssetLib/FBX/FBXDocument.cpp

@@ -199,6 +199,14 @@ const Object* LazyObject::Get(bool dieOnError) {
             object.reset(new AnimationCurveNode(id,element,name,doc));
             object.reset(new AnimationCurveNode(id,element,name,doc));
         }
         }
     }
     }
+    catch (std::bad_alloc&) {
+        // out-of-memory is unrecoverable and should always lead to a failure
+
+        flags &= ~BEING_CONSTRUCTED;
+        flags |= FAILED_TO_CONSTRUCT;
+
+        throw;
+    }
     catch(std::exception& ex) {
     catch(std::exception& ex) {
         flags &= ~BEING_CONSTRUCTED;
         flags &= ~BEING_CONSTRUCTED;
         flags |= FAILED_TO_CONSTRUCT;
         flags |= FAILED_TO_CONSTRUCT;