Fix memory leak on throw

pull/2094/head
Jeka Vlasov 2018-08-15 02:27:56 +03:00
parent 2b15586e6b
commit 102486005d
1 changed files with 12 additions and 11 deletions

View File

@ -228,18 +228,12 @@ void ObjFileImporter::CreateDataFromImport(const ObjFile::Model* pModel, aiScene
// Create all materials // Create all materials
createMaterials(pModel, pScene); createMaterials(pModel, pScene);
}else { }else {
if (pModel->m_Vertices.empty()) if (pModel->m_Vertices.empty()){
return; return;
}
aiMesh* mesh = new aiMesh(); std::unique_ptr<aiMesh> mesh( new aiMesh );
mesh->mPrimitiveTypes = aiPrimitiveType_POINT; mesh->mPrimitiveTypes = aiPrimitiveType_POINT;
pScene->mRootNode->mNumMeshes = 1;
pScene->mRootNode->mMeshes = new unsigned int[1];
pScene->mRootNode->mMeshes[0] = 0;
pScene->mMeshes = new aiMesh*[1];
pScene->mNumMeshes = 1;
pScene->mMeshes[0] = mesh;
unsigned int n = pModel->m_Vertices.size(); unsigned int n = pModel->m_Vertices.size();
mesh->mNumVertices = n; mesh->mNumVertices = n;
@ -265,6 +259,13 @@ void ObjFileImporter::CreateDataFromImport(const ObjFile::Model* pModel, aiScene
} }
} }
} }
pScene->mRootNode->mNumMeshes = 1;
pScene->mRootNode->mMeshes = new unsigned int[1];
pScene->mRootNode->mMeshes[0] = 0;
pScene->mMeshes = new aiMesh*[1];
pScene->mNumMeshes = 1;
pScene->mMeshes[0] = mesh.release();
} }
} }