[Scummvm-cvs-logs] CVS: scummvm/sky control.cpp,1.69,1.70
Max Horn
fingolfin at users.sourceforge.net
Fri Jun 25 15:14:02 CEST 2004
Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9054/sky
Modified Files:
control.cpp
Log Message:
Use auto_ptr to avoid leaks
Index: control.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/control.cpp,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- control.cpp 28 Mar 2004 16:30:49 -0000 1.69
+++ control.cpp 25 Jun 2004 22:12:56 -0000 1.70
@@ -35,6 +35,7 @@
#include "sky/struc.h"
#include "sky/text.h"
+#include <memory>
namespace Sky {
@@ -783,13 +784,13 @@
strcpy(fName, "SKY-VM-CD.ASD");
else
sprintf(fName, "SKY-VM%03d.ASD", SkyEngine::_systemVars.gameVersion);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
f = mgr->open_savefile(fName, _savePath, false);
if (f != NULL) {
test = true;
delete f;
}
- delete mgr;
return test;
}
@@ -1003,7 +1004,8 @@
memset(destBuf, 0, MAX_SAVE_GAMES * MAX_TEXT_LEN);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *inf;
inf = mgr->open_savefile("SKY-VM.SAV",_savePath,false);
if (inf != NULL) {
@@ -1028,7 +1030,6 @@
destPos += MAX_TEXT_LEN;
}
}
- delete mgr;
}
bool Control::loadSaveAllowed(void) {
@@ -1064,13 +1065,13 @@
srcPos += MAX_TEXT_LEN;
}
SaveFile *outf;
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
outf = mgr->open_savefile("SKY-VM.SAV", _savePath, true);
if (outf != NULL) {
outf->write(tmpBuf, tmpPos - tmpBuf);
delete outf;
}
- delete mgr;
free(tmpBuf);
}
@@ -1081,11 +1082,11 @@
else
sprintf(fName, "SKY-VM%03d.ASD", SkyEngine::_systemVars.gameVersion);
SaveFile *outf;
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
outf = mgr->open_savefile(fName, _savePath, true);
if (outf == NULL) {
warning("Can't create file %s for autosaving", fName);
- delete mgr;
return;
}
uint8 *saveData = (uint8 *)malloc(0x20000);
@@ -1094,7 +1095,6 @@
if (outf->write(saveData, fSize) != fSize)
warning("Can't write file %s for autosaving. Disk full?", fName);
delete outf;
- delete mgr;
free(saveData);
}
@@ -1102,11 +1102,11 @@
char fName[20];
sprintf(fName,"SKY-VM.%03d", _selectedGame);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *outf;
outf = mgr->open_savefile(fName, _savePath, true);
if (outf == NULL) {
- delete mgr;
return NO_DISK_SPACE;
}
@@ -1116,11 +1116,9 @@
if (outf->write(saveData, fSize) != fSize) {
free(saveData);
delete outf;
- delete mgr;
return NO_DISK_SPACE;
}
delete outf;
- delete mgr;
free(saveData);
return GAME_SAVED;
}
@@ -1509,11 +1507,11 @@
} else
sprintf(fName,"SKY-VM.%03d", _selectedGame);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *inf;
inf = mgr->open_savefile(fName, _savePath, false);
if (inf == NULL) {
- delete mgr;
return RESTORE_FAILED;
}
@@ -1526,14 +1524,12 @@
warning("Can't read from file!");
free(saveData);
delete inf;
- delete mgr;
return RESTORE_FAILED;
}
uint16 res = parseSaveData(saveData);
SkyEngine::_systemVars.pastIntro = true;
delete inf;
- delete mgr;
free(saveData);
return res;
}
More information about the Scummvm-git-logs
mailing list