Ensure that an old random seed isn't left around for the user to see when a
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sat, 21 May 2005 22:07:48 +0000 (22:07 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sat, 21 May 2005 22:07:48 +0000 (22:07 +0000)
descriptive ID has been specified.
Fix tiny memory leak.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@5825 cda61777-01e9-0310-a592-d414129be87e

midend.c

index ce0a315..1d7087a 100644 (file)
--- a/midend.c
+++ b/midend.c
@@ -748,18 +748,23 @@ static char *midend_game_id_int(midend_data *me, char *id, int defmode)
         if (seed || desc) {
             char *tmpstr = me->ourgame->encode_params(tmpparams, FALSE);
             me->ourgame->decode_params(me->params, tmpstr);
+            sfree(tmpstr);
         } else {
             me->ourgame->free_params(me->params);
             me->params = me->ourgame->dup_params(tmpparams);
         }
     }
 
+    sfree(me->desc);
+    me->desc = NULL;
+    sfree(me->seedstr);
+    me->seedstr = NULL;
+
     if (desc) {
         error = me->ourgame->validate_desc(me->params, desc);
         if (error)
             return error;
 
-        sfree(me->desc);
         me->desc = dupstr(desc);
         me->genmode = GOT_DESC;
        if (me->aux_info)
@@ -768,7 +773,6 @@ static char *midend_game_id_int(midend_data *me, char *id, int defmode)
     }
 
     if (seed) {
-        sfree(me->seedstr);
         me->seedstr = dupstr(seed);
         me->genmode = GOT_SEED;
     }