fix review finding: fix resource leak.

pull/2289/head
Kim Kulling 2018-12-30 16:11:39 +01:00
parent 3596c822a5
commit 92bb0febdf
1 changed files with 23 additions and 18 deletions

View File

@ -89,14 +89,16 @@ static const aiImporterDesc desc = {
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
IRRImporter::IRRImporter()
: fps(),
configSpeedFlag()
{}
: fps()
, configSpeedFlag(){
// empty
}
// ------------------------------------------------------------------------------------------------
// Destructor, private as well
IRRImporter::~IRRImporter()
{}
IRRImporter::~IRRImporter() {
// empty
}
// ------------------------------------------------------------------------------------------------
// Returns whether the class can handle the format of the given file.
@ -107,9 +109,9 @@ bool IRRImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool
} else if (extension == "xml" || checkSig) {
/* If CanRead() is called in order to check whether we
* support a specific file extension in general pIOHandler
* might be NULL and it's our duty to return true here.
* might be nullptr and it's our duty to return true here.
*/
if ( nullptr == pIOHandler ) {
if (nullptr == pIOHandler ) {
return true;
}
const char* tokens[] = {"irr_scene"};
@ -290,8 +292,8 @@ void IRRImporter::CopyMaterial(std::vector<aiMaterial*>& materials,
// ------------------------------------------------------------------------------------------------
inline int ClampSpline(int idx, int size)
{
inline
int ClampSpline(int idx, int size) {
return ( idx<0 ? size+idx : ( idx>=size ? idx-size : idx ) );
}
@ -310,7 +312,7 @@ inline void FindSuitableMultiple(int& angle)
// ------------------------------------------------------------------------------------------------
void IRRImporter::ComputeAnimations(Node* root, aiNode* real, std::vector<aiNodeAnim*>& anims)
{
ai_assert(NULL != root && NULL != real);
ai_assert(nullptr != root && nullptr != real);
// XXX totally WIP - doesn't produce proper results, need to evaluate
// whether there's any use for Irrlicht's proprietary scene format
@ -521,7 +523,8 @@ void IRRImporter::ComputeAnimations(Node* root, aiNode* real, std::vector<aiNode
// We have no point in the spline. That's bad. Really bad.
ASSIMP_LOG_WARN("IRR: Spline animators with no points defined");
delete anim;anim = nullptr;
delete anim;
anim = nullptr;
break;
}
else if (size == 1) {
@ -905,8 +908,9 @@ void IRRImporter::InternReadFile( const std::string& pFile,
std::unique_ptr<IOStream> file( pIOHandler->Open( pFile));
// Check whether we can read from the file
if( file.get() == NULL)
throw DeadlyImportError( "Failed to open IRR file " + pFile + "");
if (file.get() == nullptr) {
throw DeadlyImportError("Failed to open IRR file " + pFile + "");
}
// Construct the irrXML parser
CIrrXML_IOStreamReader st(file.get());
@ -914,14 +918,14 @@ void IRRImporter::InternReadFile( const std::string& pFile,
// The root node of the scene
Node* root = new Node(Node::DUMMY);
root->parent = NULL;
root->parent = nullptr;
root->name = "<IRRSceneRoot>";
// Current node parent
Node* curParent = root;
// Scenegraph node we're currently working on
Node* curNode = NULL;
Node* curNode = nullptr;
// List of output cameras
std::vector<aiCamera*> cameras;
@ -1048,7 +1052,7 @@ void IRRImporter::InternReadFile( const std::string& pFile,
continue;
}
Animator* curAnim = NULL;
Animator* curAnim = nullptr;
// Materials can occur for nearly any type of node
if (inMaterials && curNode->type != Node::DUMMY) {
@ -1353,7 +1357,7 @@ void IRRImporter::InternReadFile( const std::string& pFile,
}
else curParent = curParent->parent;
}
else curNode = NULL;
else curNode = nullptr;
}
// clear all flags
else if (!ASSIMP_stricmp(reader->getNodeName(),"materials")) {
@ -1479,7 +1483,8 @@ void IRRImporter::InternReadFile( const std::string& pFile,
/* Finished ... everything destructs automatically and all
* temporary scenes have already been deleted by MergeScenes()
*/
return;
delete root;
}
#endif // !! ASSIMP_BUILD_NO_IRR_IMPORTER