[Scummvm-cvs-logs] CVS: scummvm/backends/fs/palmos palmos-fs.cpp,1.4,1.5

Max Horn fingolfin at users.sourceforge.net
Sat Nov 20 13:36:15 CET 2004


Update of /cvsroot/scummvm/scummvm/backends/fs/palmos
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32450/backends/fs/palmos

Modified Files:
	palmos-fs.cpp 
Log Message:
Changed the FilesystemNode implementation to make it easier to use (client code doesn't have to worry about the memory managment anymore, it's all 'automatic' now). May have introduced a mem leak or two, please check :-)

Index: palmos-fs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/fs/palmos/palmos-fs.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- palmos-fs.cpp	20 Jan 2004 14:35:37 -0000	1.4
+++ palmos-fs.cpp	20 Nov 2004 21:35:48 -0000	1.5
@@ -29,7 +29,7 @@
  * Implementation of the ScummVM file system API based on PalmOS VFS API.
  */
 
-class PalmOSFilesystemNode : public FilesystemNode {
+class PalmOSFilesystemNode : public AbstractFilesystemNode {
 protected:
 	String _displayName;
 	bool _isDirectory;
@@ -47,15 +47,14 @@
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual String path() const { return _path; }
 
-	virtual FSList *listDir(ListMode) const;
-	virtual FilesystemNode *parent() const;
-	virtual FilesystemNode *clone() const { return new PalmOSFilesystemNode(this); }
+	virtual FSList listDir(ListMode) const;
+	virtual AbstractFilesystemNode *parent() const;
 
 private:
-	static void addFile (FSList* list, ListMode mode, const Char *base, FileInfoType* find_data);
+	static void addFile (FSList &list, ListMode mode, const Char *base, FileInfoType* find_data);
 };
 
-void PalmOSFilesystemNode::addFile(FSList* list, ListMode mode, const char *base, FileInfoType* find_data) {
+void PalmOSFilesystemNode::addFile(FSList &list, ListMode mode, const char *base, FileInfoType* find_data) {
 	PalmOSFilesystemNode entry;
 	bool isDirectory;
 
@@ -74,10 +73,10 @@
 
 	entry._isValid = true;	
 	entry._isPseudoRoot = false;
-	list->push_back(entry);
+	list.push_back(wrap(new PalmOSFilesystemNode(&entry)));
 }
 
-FilesystemNode *FilesystemNode::getRoot() {
+AbstractFilesystemNode *FilesystemNode::getRoot() {
 	return new PalmOSFilesystemNode();
 }
 
@@ -97,9 +96,9 @@
 	_path = node->_path;
 }
 
-FSList *PalmOSFilesystemNode::listDir(ListMode mode) const {
+FSList PalmOSFilesystemNode::listDir(ListMode mode) const {
 
-	FSList *myList = new FSList();
+	FSList myList;
 	Err e;
 	Char nameP[256];
 	FileInfoType desc;
@@ -136,7 +135,7 @@
 	return cur+1;
 }
 
-FilesystemNode *PalmOSFilesystemNode::parent() const {
+AbstractFilesystemNode *PalmOSFilesystemNode::parent() const {
 
 	PalmOSFilesystemNode *p = new PalmOSFilesystemNode();
 





More information about the Scummvm-git-logs mailing list