From 77dcad21db62f70cd7d4932393981d9601eb881f Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Fri, 25 Oct 2019 09:14:12 -0700 Subject: [PATCH] Fix OBJSerializer crash with empty groupMaterialName --- libraries/fbx/src/OBJSerializer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libraries/fbx/src/OBJSerializer.cpp b/libraries/fbx/src/OBJSerializer.cpp index 445c259650..6f3f67a3bf 100644 --- a/libraries/fbx/src/OBJSerializer.cpp +++ b/libraries/fbx/src/OBJSerializer.cpp @@ -741,8 +741,8 @@ HFMModel::Pointer OBJSerializer::read(const hifi::ByteArray& data, const hifi::V needsMaterialLibrary = groupMaterialName != SMART_DEFAULT_MATERIAL_NAME; } materials[groupMaterialName] = material; - materialNamePerShape.push_back(groupMaterialName); } + materialNamePerShape.push_back(groupMaterialName); hfm::Shape shape; @@ -1010,9 +1010,12 @@ HFMModel::Pointer OBJSerializer::read(const hifi::ByteArray& data, const hifi::V // GO over the shapes once more to assign the material index correctly for (uint32_t i = 0; i < (uint32_t)hfmModel.shapes.size(); ++i) { - auto foundMaterialIndex = materialNameToIndex.find(materialNamePerShape[i]); - if (foundMaterialIndex != materialNameToIndex.end()) { - hfmModel.shapes[i].material = foundMaterialIndex.value(); + const auto& materialName = materialNamePerShape[i]; + if (!materialName.isEmpty()) { + auto foundMaterialIndex = materialNameToIndex.find(materialName); + if (foundMaterialIndex != materialNameToIndex.end()) { + hfmModel.shapes[i].material = foundMaterialIndex.value(); + } } }