Fix memory leak on throw
parent
2b15586e6b
commit
102486005d
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue