mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 16:05:44 -07:00
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]
This commit is contained in:
8
midend.c
8
midend.c
@ -748,18 +748,23 @@ static char *midend_game_id_int(midend_data *me, char *id, int defmode)
|
|||||||
if (seed || desc) {
|
if (seed || desc) {
|
||||||
char *tmpstr = me->ourgame->encode_params(tmpparams, FALSE);
|
char *tmpstr = me->ourgame->encode_params(tmpparams, FALSE);
|
||||||
me->ourgame->decode_params(me->params, tmpstr);
|
me->ourgame->decode_params(me->params, tmpstr);
|
||||||
|
sfree(tmpstr);
|
||||||
} else {
|
} else {
|
||||||
me->ourgame->free_params(me->params);
|
me->ourgame->free_params(me->params);
|
||||||
me->params = me->ourgame->dup_params(tmpparams);
|
me->params = me->ourgame->dup_params(tmpparams);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sfree(me->desc);
|
||||||
|
me->desc = NULL;
|
||||||
|
sfree(me->seedstr);
|
||||||
|
me->seedstr = NULL;
|
||||||
|
|
||||||
if (desc) {
|
if (desc) {
|
||||||
error = me->ourgame->validate_desc(me->params, desc);
|
error = me->ourgame->validate_desc(me->params, desc);
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
sfree(me->desc);
|
|
||||||
me->desc = dupstr(desc);
|
me->desc = dupstr(desc);
|
||||||
me->genmode = GOT_DESC;
|
me->genmode = GOT_DESC;
|
||||||
if (me->aux_info)
|
if (me->aux_info)
|
||||||
@ -768,7 +773,6 @@ static char *midend_game_id_int(midend_data *me, char *id, int defmode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (seed) {
|
if (seed) {
|
||||||
sfree(me->seedstr);
|
|
||||||
me->seedstr = dupstr(seed);
|
me->seedstr = dupstr(seed);
|
||||||
me->genmode = GOT_SEED;
|
me->genmode = GOT_SEED;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user