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