Fix a handful of memory leaks in the midend.

I happened to notice these when running dominosa --generate under Leak
Sanitiser.
This commit is contained in:
Simon Tatham
2019-04-05 19:29:23 +01:00
parent 5c4d6b8f35
commit 7f00725c97

View File

@ -171,6 +171,8 @@ midend *midend_new(frontend *fe, const game *ourgame,
me->params = ourgame->default_params(); me->params = ourgame->default_params();
me->game_id_change_notify_function = NULL; me->game_id_change_notify_function = NULL;
me->game_id_change_notify_ctx = 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 * Allow environment-based changing of the default settings by
@ -261,8 +263,13 @@ static void midend_free_preset_menu(midend *me, struct preset_menu *menu)
void midend_free(midend *me) void midend_free(midend *me)
{ {
int i;
midend_free_game(me); 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) if (me->drawing)
drawing_free(me->drawing); drawing_free(me->drawing);
random_free(me->random); random_free(me->random);