shithub: puzzles

Download patch

ref: f279c5eba035d018a8805a65a8a245b8b8d2ea2e
parent: 56781e60ba88728f56bf0241a22553008d76ef74
author: Simon Tatham <[email protected]>
date: Thu Aug 24 08:40:51 EDT 2023

midend_request_keys: fix memory leak of a game_params.

Thanks to Steffen Bauer for spotting this. The call to
midend_get_params(me) was making a duplicate of me->params, and
nothing was freeing it.

Since the game_params is passed to request_keys as a const pointer, it
should be safe to pass me->params itself, so that instead of adding a
free, we can remove the unnecessary allocation.

--- a/midend.c
+++ b/midend.c
@@ -1271,7 +1271,7 @@
 
     if(me->ourgame->request_keys)
     {
-        keys = me->ourgame->request_keys(midend_get_params(me), &nkeys);
+        keys = me->ourgame->request_keys(me->params, &nkeys);
         for(i = 0; i < nkeys; ++i)
         {
             if(!keys[i].label)