[Scummvm-cvs-logs] CVS: scummvm/sword2 save_rest.cpp,1.55,1.56
Max Horn
fingolfin at users.sourceforge.net
Fri Jun 25 15:14:01 CEST 2004
Update of /cvsroot/scummvm/scummvm/sword2
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9054/sword2
Modified Files:
save_rest.cpp
Log Message:
Use auto_ptr to avoid leaks
Index: save_rest.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/save_rest.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- save_rest.cpp 10 Jun 2004 06:14:07 -0000 1.55
+++ save_rest.cpp 25 Jun 2004 22:12:54 -0000 1.56
@@ -33,6 +33,8 @@
#include "sword2/logic.h"
#include "sword2/resman.h"
+#include <memory>
+
namespace Sword2 {
// A savegame consists of a header and the global variables
@@ -163,18 +165,17 @@
sprintf(saveFileName, "%s.%.3d", _targetName, slotNo);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *out;
if (!(out = mgr->open_savefile(saveFileName, getSavePath(), true))) {
- delete mgr;
return SR_ERR_FILEOPEN;
}
uint32 itemsWritten = out->write(buffer, bufferSize);
delete out;
- delete mgr;
if (itemsWritten == bufferSize)
return SR_OK;
@@ -213,12 +214,12 @@
sprintf(saveFileName, "%s.%.3d", _targetName, slotNo);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *in;
if (!(in = mgr->open_savefile(saveFileName, getSavePath(), false))) {
// error: couldn't open file
- delete mgr;
return SR_ERR_FILEOPEN;
}
@@ -226,14 +227,11 @@
uint32 itemsRead = in->read(buffer, bufferSize);
delete in;
- delete mgr;
if (itemsRead != bufferSize) {
// We didn't get all of it. At the moment we have no way of
// knowing why, so assume that it's an incompatible savegame.
- delete in;
- delete mgr;
return SR_ERR_INCOMPATIBLE;
}
@@ -363,11 +361,11 @@
sprintf(saveFileName, "%s.%.3d", _targetName, slotNo);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *in;
if (!(in = mgr->open_savefile(saveFileName, getSavePath(), false))) {
- delete mgr;
return SR_ERR_FILEOPEN;
}
@@ -375,7 +373,6 @@
in->read(&dummy, sizeof(dummy));
delete in;
- delete mgr;
strcpy((char *) description, dummy.description);
return SR_OK;
@@ -393,16 +390,15 @@
sprintf(saveFileName, "%s.%.3d", _targetName, slotNo);
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
SaveFile *in;
if (!(in = mgr->open_savefile(saveFileName, getSavePath(), false))) {
- delete mgr;
return false;
}
delete in;
- delete mgr;
return true;
}
More information about the Scummvm-git-logs
mailing list