[Scummvm-cvs-logs] CVS: scummvm/scumm script_v8.cpp,2.249,2.250 script_v5.cpp,1.238,1.239 dialogs.cpp,1.111,1.112
Max Horn
fingolfin at users.sourceforge.net
Fri Jun 25 15:14:03 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9054/scumm
Modified Files:
script_v8.cpp script_v5.cpp dialogs.cpp
Log Message:
Use auto_ptr to avoid leaks
Index: script_v8.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v8.cpp,v
retrieving revision 2.249
retrieving revision 2.250
diff -u -d -r2.249 -r2.250
--- script_v8.cpp 21 Jun 2004 02:33:23 -0000 2.249
+++ script_v8.cpp 25 Jun 2004 22:12:57 -0000 2.250
@@ -34,6 +34,7 @@
#include "scumm/smush/smush_player.h"
#include "sound/mixer.h"
+#include <memory>
namespace Scumm {
@@ -1322,7 +1323,7 @@
warning("o8_kernelSetFunctions: clearTextQueue()");
break;
case 25: { // saveGameReadName
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
char *address = (char*)getStringAddress(args[2]);
char name[30];
@@ -1330,13 +1331,14 @@
warning("o8_kernelSetFunctions: saveGameReadName failed finding slot string %d", args[2]);
break;
}
- getSavegameName(args[1] - 1, name, mgr);
+ getSavegameName(args[1] - 1, name, mgr.get());
if (strlen(name) > 0 && strlen(name) < 30)
strcpy(address, name);
break;
}
case 26: { // saveGame?
- //SaveFileManager *mgr = _system->get_savefile_manager();
+ //const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
//char *address = (char*)getStringAddress(args[2]);
char address[30];
warning("o8_kernelSetFunctions: saveGame?(%d, %s)", args[1], address);
Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.238
retrieving revision 1.239
diff -u -d -r1.238 -r1.239
--- script_v5.cpp 2 May 2004 14:39:48 -0000 1.238
+++ script_v5.cpp 25 Jun 2004 22:12:57 -0000 1.239
@@ -29,6 +29,8 @@
#include "scumm/sound.h"
#include "scumm/verbs.h"
+#include <memory>
+
namespace Scumm {
#define OPCODE(x) { &ScummEngine_v5::x, #x }
@@ -1172,8 +1174,9 @@
case 0xC0: // test if save exists
bool avail_saves[100];
char filename[256];
- SaveFileManager *mgr = _system->get_savefile_manager();
- listSavegames(avail_saves, ARRAYSIZE(avail_saves), mgr);
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
+ listSavegames(avail_saves, ARRAYSIZE(avail_saves), mgr.get());
makeSavegameName(filename, slot, false);
if (avail_saves[slot] && (mgr->open_savefile(filename, getSavePath(), false)))
result = 6; // save file exists
@@ -1938,7 +1941,8 @@
s = filename;
while ((*s++ = fetchScriptByte()));
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
file = mgr->open_savefile(filename, getSavePath(), true);
if (file != NULL) {
byte *ptr;
@@ -1946,7 +1950,6 @@
file->write(ptr, resStrLen(ptr) + 1);
delete file;
}
- delete mgr;
break;
}
case 14: // SO_LOAD_STRING
@@ -1958,7 +1961,8 @@
s = filename;
while ((*s++ = fetchScriptByte()));
- SaveFileManager *mgr = _system->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
file = mgr->open_savefile(filename, getSavePath(), false);
if (file != NULL) {
byte *ptr;
@@ -1974,7 +1978,6 @@
free(ptr);
delete file;
}
- delete mgr;
break;
}
case 15: // SO_ROOM_TRANSFORM
Index: dialogs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.cpp,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- dialogs.cpp 26 Apr 2004 20:28:33 -0000 1.111
+++ dialogs.cpp 25 Jun 2004 22:12:57 -0000 1.112
@@ -44,6 +44,8 @@
#include "backends/wince/CEKeysDialog.h"
#endif
+#include <memory>
+
using GUI::CommandSender;
using GUI::StaticTextWidget;
using GUI::kButtonWidth;
@@ -255,19 +257,17 @@
uint i = saveMode ? 1 : 0;
bool avail_saves[81];
- SaveFileManager *mgr = OSystem::instance()->get_savefile_manager();
+ const std::auto_ptr<SaveFileManager> mgr(OSystem::instance()->get_savefile_manager());
- scumm->listSavegames(avail_saves, ARRAYSIZE(avail_saves), mgr);
+ scumm->listSavegames(avail_saves, ARRAYSIZE(avail_saves), mgr.get());
for (; i < ARRAYSIZE(avail_saves); i++) {
if (avail_saves[i])
- scumm->getSavegameName(i, name, mgr);
+ scumm->getSavegameName(i, name, mgr.get());
else
name[0] = 0;
l.push_back(name);
}
- delete mgr;
-
return l;
}
More information about the Scummvm-git-logs
mailing list