[Scummvm-cvs-logs] CVS: scummvm/simon simon.cpp,1.433,1.434

Max Horn fingolfin at users.sourceforge.net
Fri Jun 25 15:14:02 CEST 2004


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9054/simon

Modified Files:
	simon.cpp 
Log Message:
Use auto_ptr to avoid leaks

Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.433
retrieving revision 1.434
diff -u -d -r1.433 -r1.434
--- simon.cpp	12 Apr 2004 12:25:51 -0000	1.433
+++ simon.cpp	25 Jun 2004 22:12:56 -0000	1.434
@@ -42,6 +42,8 @@
 #include <errno.h>
 #include <time.h>
 
+#include <memory>
+
 #ifdef __PALM_OS__
 #include "globals.h"
 #endif
@@ -2623,7 +2625,8 @@
 	uint i = 1;
 	bool marks[256];
 
-	SaveFileManager *mgr = _system->get_savefile_manager();
+	const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
 	char *prefix = gen_savename(999);
 	prefix[strlen(prefix)-3] = '\0';
 	mgr->list_savefiles(prefix, getSavePath(), marks, 256);
@@ -2637,7 +2640,6 @@
 		} else
 			break;
 	}
-	delete mgr;
 	return i;
 }
 
@@ -2651,7 +2653,8 @@
 
 	slot = curpos;
 
-	SaveFileManager *mgr = _system->get_savefile_manager();
+	const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
 
 	while (curpos + 6 > slot) {
 		if(!(in = mgr->open_savefile(gen_savename(slot), getSavePath(), false)))
@@ -2685,8 +2688,6 @@
 		}
 	}
 
-	delete mgr;
-
 	return slot - curpos;
 }
 
@@ -4806,11 +4807,11 @@
 	errno = 0;
 #endif
 
-	SaveFileManager *mgr = _system->get_savefile_manager();
+	const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
 
 	f = mgr->open_savefile(gen_savename(slot), getSavePath(), true);
 	if (f == NULL) {
-		delete mgr;
 		_lock_word &= ~0x100;
 		return false;
 	}
@@ -4881,7 +4882,6 @@
 		f->writeUint16BE(_bit_array[i]);
 
 	delete f;
-	delete mgr;
 
 	_lock_word &= ~0x100;
 
@@ -4892,9 +4892,9 @@
 	static char buf[15];
 
 	if (_game & GF_SIMON2) {
-	sprintf(buf, "simon2.%.3d", slot);
+		sprintf(buf, "simon2.%.3d", slot);
 	} else {
-	sprintf(buf, "simon1.%.3d", slot);
+		sprintf(buf, "simon1.%.3d", slot);
 	}
 	return buf;
 }
@@ -4910,11 +4910,11 @@
 	errno = 0;
 #endif
 
-	SaveFileManager *mgr = _system->get_savefile_manager();
+	const std::auto_ptr<SaveFileManager> mgr(_system->get_savefile_manager());
+
 
 	f = mgr->open_savefile(gen_savename(slot), getSavePath(), false);
 	if (f == NULL) {
-		delete mgr;
 		_lock_word &= ~0x100;
 		return false;
 	}
@@ -4925,7 +4925,6 @@
 
 	if (f->readUint32BE() != 0xFFFFFFFF || num != _itemarray_inited - 1) {
 		delete f;
-		delete mgr;
 		_lock_word &= ~0x100;
 		return false;
 	}
@@ -5003,7 +5002,6 @@
 		_bit_array[i] = f->readUint16BE();
 
 	delete f;
-	delete mgr;
 
 	_no_parent_notify = false;
 





More information about the Scummvm-git-logs mailing list