shithub: puzzles

Download patch

ref: 7f00725c978bf79de91951f143cdfd2f9173041d
parent: 5c4d6b8f35e749b269907fd2cdaacc117198807b
author: Simon Tatham <anakin@pobox.com>
date: Fri Apr 5 15:29:23 EDT 2019

Fix a handful of memory leaks in the midend.

I happened to notice these when running dominosa --generate under Leak
Sanitiser.

--- a/midend.c
+++ b/midend.c
@@ -171,6 +171,8 @@
     me->params = ourgame->default_params();
     me->game_id_change_notify_function = NULL;
     me->game_id_change_notify_ctx = NULL;
+    me->encoded_presets = NULL;
+    me->n_encoded_presets = 0;
 
     /*
      * Allow environment-based changing of the default settings by
@@ -261,8 +263,13 @@
 
 void midend_free(midend *me)
 {
+    int i;
+
     midend_free_game(me);
 
+    for (i = 0; i < me->n_encoded_presets; i++)
+        sfree(me->encoded_presets[i]);
+    sfree(me->encoded_presets);
     if (me->drawing)
 	drawing_free(me->drawing);
     random_free(me->random);