chiark / gitweb /
Ensure that an old random seed isn't left around for the user to see when a
authorJacob Nevins <jacobn@chiark.greenend.org.uk>
Sat, 21 May 2005 22:07:48 +0000 (22:07 +0000)
committerJacob Nevins <jacobn@chiark.greenend.org.uk>
Sat, 21 May 2005 22:07:48 +0000 (22:07 +0000)
descriptive ID has been specified.
Fix tiny memory leak.

[originally from svn r5825]

midend.c

index ce0a315cd831498f14eeb501469c8d5e8c71a29e..1d7087ac4455025aa6f39b81652bd58822f7d172 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;
     }