got rid of two memory leaks

svn-id: r24589
This commit is contained in:
Gregory Montoir 2006-11-03 21:01:49 +00:00
parent e57316c796
commit f9cf368a67
5 changed files with 8 additions and 14 deletions

View file

@ -34,7 +34,7 @@ AdvancedDetector::AdvancedDetector() {
_fileMD5Bytes = 0;
}
String AdvancedDetector::getDescription(int num) {
String AdvancedDetector::getDescription(int num) const {
char tmp[256];
const ADGameDescription *g = _gameDescriptions[num];
@ -67,7 +67,7 @@ ADList AdvancedDetector::detectGame(const FSList *fslist, Language language, Pla
assert(_gameDescriptions.size());
matched = (int *)malloc(_gameDescriptions.size() * sizeof(int));
matched = new int[_gameDescriptions.size()];
// First we compose list of files which we need MD5s for
for (i = 0; i < _gameDescriptions.size(); i++) {
@ -138,9 +138,8 @@ ADList AdvancedDetector::detectGame(const FSList *fslist, Language language, Pla
if (strcmp(fileDesc->md5, filesMD5[tstr].c_str()) && strcmp(fileDesc->md5, filesMD5[tstr2].c_str())) {
fileMissing = true;
break;
} else {
debug(3, "Matched file: %s", tstr.c_str());
}
debug(3, "Matched file: %s", tstr.c_str());
}
if (!fileMissing) {
debug(2, "Found game: %s", getDescription(i).c_str());
@ -183,13 +182,13 @@ ADList AdvancedDetector::detectGame(const FSList *fslist, Language language, Pla
}
ADList *returnMatches = new ADList;
j = 0;
ADList returnMatches;
for (i = 0; i < matchedCount; i++)
if (matched[i] != -1)
returnMatches->push_back(matched[i]);
returnMatches.push_back(matched[i]);
return *returnMatches;
delete[] matched;
return returnMatches;
}
} // End of namespace Common

View file

@ -79,7 +79,7 @@ private:
int _fileMD5Bytes;
String getDescription(int num);
String getDescription(int num) const;
};
} // End of namespace Common

View file

@ -219,8 +219,6 @@ bool AGOSEngine::initGame() {
}
}
//delete &matches;
if (gameNumber >= ARRAYSIZE(gameDescriptions) || gameNumber == -1) {
error("AGOSEngine::loadGame wrong gameNumber");
}

View file

@ -706,7 +706,6 @@ DetectedGameList GAME_detectGames(const FSList &fslist) {
for (uint i = 0; i < matches.size(); i++)
detectedGames.push_back(toDetectedGame(gameDescriptions[matches[i]].desc));
//delete &matches;
return detectedGames;
}

View file

@ -153,8 +153,6 @@ bool SagaEngine::initGame() {
gameNumber = matches[0];
//delete matches;
if (gameNumber >= gameCount || gameNumber == -1) {
error("SagaEngine::loadGame wrong gameNumber");
}