]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/loadsave.cpp
fixed some memory issues
[irc/gameservirc.git] / gameserv / loadsave.cpp
index 61026431a9547b784417e47f8273276f2209abdb..66c8d8e1a487f6435e8451533580bddaf388028d 100755 (executable)
@@ -308,6 +308,8 @@ int load_items()
                break;
       try
                {
+         /* Need to check to see if this is a memory leak. It should
+            clear out on exit since STL list::clear() deletes its nodes */
                  if (buf[0] != '#' && buf[0] != '\n' && buf[0] != '\0')
                        {
                          switch(buf[0])
@@ -360,6 +362,7 @@ int load_gs_dbase()
   if (infile.fail())
     {
          log("Error opening %s", playerdata);
+     delete []buf;
          return 0;
     }
   
@@ -482,11 +485,11 @@ bool load_monsters()
   ifstream infile;
   char *buf;
   buf = new char[2048];
+  filename = new char[256];
   
   for (int level = 1; level <= LEVELS; level++)
        {
-         filename = new char[256];
-         sprintf(filename, "data/monsters/level%d.dat", level);
+         snprintf(filename, 256, "data/monsters/level%d.dat", level);
          infile.open(filename);
          
          if (infile.fail())
@@ -517,12 +520,9 @@ bool load_monsters()
                  levels[level - 1].monsters.push_back(temp);
 
                }
-         delete [] filename;
          infile.close();
        }
   delete [] buf;
+  delete [] filename;
   return true;
 }
-
-
-