diff options
| author | Ben Hutchings <benh@debian.org> | 2023-01-16 00:07:01 +0100 |
|---|---|---|
| committer | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-16 10:46:13 +0000 |
| commit | 1dc1ed786fda790f60f2fe9f8e7c404c73ae64da (patch) | |
| tree | 681533d497a954be9992738594c226bf889eec0d | |
| parent | 4b5422181deb3b09a7926aa51a7b26d656ca15ba (diff) | |
| download | puzzles-1dc1ed786fda790f60f2fe9f8e7c404c73ae64da.zip puzzles-1dc1ed786fda790f60f2fe9f8e7c404c73ae64da.tar.gz puzzles-1dc1ed786fda790f60f2fe9f8e7c404c73ae64da.tar.bz2 puzzles-1dc1ed786fda790f60f2fe9f8e7c404c73ae64da.tar.xz | |
Fix memory leak in convert_tilesize
If old_dpr == new_dpr, convert_tilesize returns early without freeing
defaults. Move the initialisation of defaults after this special
case.
| -rw-r--r-- | midend.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -321,10 +321,13 @@ static int convert_tilesize(midend *me, int old_tilesize, double old_dpr, double new_dpr) { int x, y, rx, ry, min, max; - game_params *defaults = me->ourgame->default_params(); + game_params *defaults; if (new_dpr == old_dpr) return old_tilesize; + + defaults = me->ourgame->default_params(); + me->ourgame->compute_size(defaults, old_tilesize, &x, &y); x *= new_dpr / old_dpr; y *= new_dpr / old_dpr; |