diff options
| author | Jacob Nevins <jacobn@chiark.greenend.org.uk> | 2005-05-21 22:07:48 +0000 |
|---|---|---|
| committer | Jacob Nevins <jacobn@chiark.greenend.org.uk> | 2005-05-21 22:07:48 +0000 |
| commit | 8ddfc3904bb200fa74a383573e1b353ff3143114 (patch) | |
| tree | 2bab57649705bac1955697c096691c64c71feaff /midend.c | |
| parent | f3ba6f8bcefde0ff75971e662841ecef6be56b5a (diff) | |
| download | puzzles-8ddfc3904bb200fa74a383573e1b353ff3143114.zip puzzles-8ddfc3904bb200fa74a383573e1b353ff3143114.tar.gz puzzles-8ddfc3904bb200fa74a383573e1b353ff3143114.tar.bz2 puzzles-8ddfc3904bb200fa74a383573e1b353ff3143114.tar.xz | |
Ensure that an old random seed isn't left around for the user to see when a
descriptive ID has been specified.
Fix tiny memory leak.
[originally from svn r5825]
Diffstat (limited to 'midend.c')
| -rw-r--r-- | midend.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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; } |