Author: mir3x
Date: Thu Feb  2 20:50:28 2017
New Revision: 34936

URL: http://svn.gna.org/viewcvs/freeciv?rev=34936&view=rev
Log:
Fixed memory leaks when rereading tileset.

See patch #8102


Modified:
    branches/S2_6/client/tilespec.c

Modified: branches/S2_6/client/tilespec.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/tilespec.c?rev=34936&r1=34935&r2=34936&view=diff
==============================================================================
--- branches/S2_6/client/tilespec.c     (original)
+++ branches/S2_6/client/tilespec.c     Thu Feb  2 20:50:28 2017
@@ -1255,7 +1255,6 @@
   enum client_states state = client_state();
   const char *name = new_tileset_name ? new_tileset_name : tileset->name;
   char tileset_name[strlen(name) + 1], old_name[strlen(tileset->name) + 1];
-  int i;
 
   /* Make local copies since these values may be freed down below */
   sz_strlcpy(tileset_name, name);
@@ -1273,11 +1272,7 @@
    *
    * We free all old data in preparation for re-reading it.
    */
-  tileset_free_tiles(tileset);
-  tileset_free_toplevel(tileset);
-  for (i = 0; i < ARRAY_SIZE(tileset->sprites.player); i++) {
-    tileset_player_free(tileset, i);
-  }
+  tileset_free(tileset);
 
   /* Step 2:  Read.
    *
@@ -2428,6 +2423,7 @@
         get_sprite_dimensions(s, &w, &h);
         ss->sprite = crop_sprite(s, 0, 0, w,
                                  h, NULL, -1, -1, t->scale);
+        free_sprite(s);
       } else {
         ss->sprite = load_gfx_file(ss->file);
       }


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to