diff --git a/code/AssetLib/FBX/FBXParser.cpp b/code/AssetLib/FBX/FBXParser.cpp index d71321452..a8e766873 100644 --- a/code/AssetLib/FBX/FBXParser.cpp +++ b/code/AssetLib/FBX/FBXParser.cpp @@ -188,15 +188,19 @@ Scope::Scope(Parser& parser,bool topLevel) ParseError("unexpected content: empty string."); } - elements.insert(ElementMap::value_type(str,new_Element(*n,parser))); - + auto *element = new_Element(*n, parser); + // Element() should stop at the next Key token (or right after a Close token) n = parser.CurrentToken(); if (n == nullptr) { if (topLevel) { + elements.insert(ElementMap::value_type(str, element)); return; } ParseError("unexpected end of file",parser.LastToken()); + delete element; + } else { + elements.insert(ElementMap::value_type(str, element)); } } }