[Scummvm-cvs-logs] CVS: scummvm/backends/dc selector.cpp,1.23,1.24

Max Horn fingolfin at users.sourceforge.net
Fri Nov 26 17:00:46 CET 2004


Update of /cvsroot/scummvm/scummvm/backends/dc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16783/dc

Modified Files:
	selector.cpp 
Log Message:
Trying to fix the WinCE/DC port breakage -- blindfolded, though, hence it probably isn't enough to get things compiling again :-/

Index: selector.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/selector.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- selector.cpp	26 Aug 2004 21:29:56 -0000	1.23
+++ selector.cpp	26 Nov 2004 21:10:56 -0000	1.24
@@ -142,7 +142,7 @@
 {
   char name[252];
   char deficon[256];
-  FilesystemNode *node;
+  FilesystemNode node;
 };
 
 static Game the_game;
@@ -160,10 +160,10 @@
   return false;
 }
 
-static bool isGame(const FilesystemNode *entry, char *base)
+static bool isGame(const FilesystemNode &entry, char *base)
 {
   FSList files;
-  files.push_back(*entry);
+  files.push_back(entry);
   DetectedGameList candidates;
 
   const PluginList &plugins = PluginManager::instance().getPlugins();
@@ -180,10 +180,10 @@
   return true;
 }
 
-static bool isIcon(const FilesystemNode *entry)
+static bool isIcon(const FilesystemNode &entry)
 {
-  int l = entry->displayName().size();
-  if(l>4 && !strcasecmp(entry->displayName().c_str()+l-4, ".ICO"))
+  int l = entry.displayName().size();
+  if(l>4 && !strcasecmp(entry.displayName().c_str()+l-4, ".ICO"))
     return true;
   else
     return false;
@@ -228,24 +228,23 @@
   int curr_game = 0, curr_dir = 0, num_dirs = 1;
   dirs[0].node = FilesystemNode::getRoot();
   while(curr_game < max && curr_dir < num_dirs) {
-    strncpy(dirs[curr_dir].name, dirs[curr_dir].node->path().c_str(), 252);
+    strncpy(dirs[curr_dir].name, dirs[curr_dir].node.path().c_str(), 252);
     dirs[curr_dir].name[251] = '\0';
     dirs[curr_dir].deficon[0] = '\0';
-    FSList *fslist = dirs[curr_dir++].node->listDir(FilesystemNode::kListAll);
-    if (fslist != NULL) {
-      for (FSList::const_iterator entry = fslist->begin(); entry != fslist->end();
+    FSList fslist = dirs[curr_dir++].node.listDir(FilesystemNode::kListAll);
+      for (FSList::const_iterator entry = fslist.begin(); entry != fslist.end();
 	   ++entry) {
 	if (entry->isDirectory()) {
 	  if(num_dirs < MAX_DIR && strcasecmp(entry->displayName().c_str(),
 					      "install")) {
-	    if ((dirs[num_dirs].node = entry->clone()) != NULL)
-	      num_dirs ++;
+	    dirs[num_dirs].node = *entry;
+	    num_dirs++;
 	  }
 	} else 
-	  if(isIcon(&*entry))
+	  if(isIcon(*entry))
 	    strcpy(dirs[curr_dir-1].deficon, entry->displayName().c_str());
 	  else if(curr_game < max &&
-		  isGame(&*entry, games[curr_game].filename_base)) {
+		  isGame(*entry, games[curr_game].filename_base)) {
 	    strcpy(games[curr_game].dir, dirs[curr_dir-1].name);
 	    if(uniqueGame(games[curr_game].filename_base,
 			  games[curr_game].dir, games, curr_game)) {
@@ -263,9 +262,6 @@
 	    }
 	  }
       }
-      delete fslist;
-    }
-    delete dirs[curr_dir-1].node;
   }
   for(int i=0; i<curr_game; i++)
     if(!loadIcon(games[i], dirs, num_dirs))





More information about the Scummvm-git-logs mailing list