goat3d

diff src/goat3d_readxml.cc @ 45:8da36540e2e9

fixed memory leak in readxml and reversed error return
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 08 Dec 2013 02:27:32 +0200
parents b35427826b60
children 498ca7ac7047
line diff
     1.1 --- a/src/goat3d_readxml.cc	Sun Dec 08 02:14:46 2013 +0200
     1.2 +++ b/src/goat3d_readxml.cc	Sun Dec 08 02:27:32 2013 +0200
     1.3 @@ -19,6 +19,7 @@
     1.4  	char *buf = new char[bytes];
     1.5  	if(io->read(buf, bytes, io->cls) < bytes) {
     1.6  		logmsg(LOG_ERROR, "failed to read XML scene file\n");
     1.7 +		delete [] buf;
     1.8  		return false;
     1.9  	}
    1.10  
    1.11 @@ -27,12 +28,14 @@
    1.12  	if(err) {
    1.13  		logmsg(LOG_ERROR, "failed to parse XML scene file: %s\n%s\n", xml.GetErrorStr1(),
    1.14  				xml.GetErrorStr2());
    1.15 +		delete [] buf;
    1.16  		return false;
    1.17  	}
    1.18  
    1.19  	XMLElement *root = xml.RootElement();
    1.20  	if(strcmp(root->Name(), "scene") != 0) {
    1.21  		logmsg(LOG_ERROR, "invalid XML file, root node is not <scene>\n");
    1.22 +		delete [] buf;
    1.23  		return false;
    1.24  	}
    1.25  
    1.26 @@ -58,7 +61,8 @@
    1.27  		elem = elem->NextSiblingElement("mesh");
    1.28  	}
    1.29  
    1.30 -	return false;
    1.31 +	delete [] buf;
    1.32 +	return true;
    1.33  }
    1.34  
    1.35