diff --git a/code/PlyLoader.cpp b/code/PlyLoader.cpp index c6e862bf1..7c4614474 100644 --- a/code/PlyLoader.cpp +++ b/code/PlyLoader.cpp @@ -91,9 +91,9 @@ namespace // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer PLYImporter::PLYImporter() - : mBuffer() - , pcDOM() - , mGeneratedMesh(NULL){ + : mBuffer(nullptr) + , pcDOM(nullptr) + , mGeneratedMesh(nullptr){ // empty } @@ -196,7 +196,10 @@ void PLYImporter::InternReadFile(const std::string& pFile, if (!PLY::DOM::ParseInstance(streamedBuffer, &sPlyDom, this)) { if (mGeneratedMesh != NULL) + { delete(mGeneratedMesh); + mGeneratedMesh = nullptr; + } streamedBuffer.close(); throw DeadlyImportError("Invalid .ply file: Unable to build DOM (#1)"); @@ -211,7 +214,10 @@ void PLYImporter::InternReadFile(const std::string& pFile, if (!PLY::DOM::ParseInstanceBinary(streamedBuffer, &sPlyDom, this, bIsBE)) { if (mGeneratedMesh != NULL) + { delete(mGeneratedMesh); + mGeneratedMesh = nullptr; + } streamedBuffer.close(); throw DeadlyImportError("Invalid .ply file: Unable to build DOM (#2)"); @@ -220,7 +226,10 @@ void PLYImporter::InternReadFile(const std::string& pFile, else { if (mGeneratedMesh != NULL) + { delete(mGeneratedMesh); + mGeneratedMesh = nullptr; + } streamedBuffer.close(); throw DeadlyImportError("Invalid .ply file: Unknown file format"); @@ -230,7 +239,10 @@ void PLYImporter::InternReadFile(const std::string& pFile, { AI_DEBUG_INVALIDATE_PTR(this->mBuffer); if (mGeneratedMesh != NULL) + { delete(mGeneratedMesh); + mGeneratedMesh = nullptr; + } streamedBuffer.close(); throw DeadlyImportError("Invalid .ply file: Missing format specification"); @@ -252,7 +264,10 @@ void PLYImporter::InternReadFile(const std::string& pFile, if (mGeneratedMesh->mNumVertices < 3) { if (mGeneratedMesh != NULL) + { delete(mGeneratedMesh); + mGeneratedMesh = nullptr; + } streamedBuffer.close(); throw DeadlyImportError("Invalid .ply file: Not enough " @@ -289,6 +304,7 @@ void PLYImporter::InternReadFile(const std::string& pFile, pScene->mNumMeshes = 1; pScene->mMeshes = new aiMesh*[pScene->mNumMeshes]; pScene->mMeshes[0] = mGeneratedMesh; + mGeneratedMesh = nullptr; // generate a simple node structure pScene->mRootNode = new aiNode();