Fix imlib image leak
Double-adding the image caused imlib's reference count to increment
twice, requiring us to free it twice to actually release the cached
image, but we only ever free it once.
Fixes #704, likely #721 (leak is not present with -DENABLE_RSVG=OFF),
possibly #650 based on connection to execp, maybe others since this was
introduced nearly 6 years ago in 1d02b858
in launcher-specific code.
This commit is contained in:
parent
49e7f54d2f
commit
e2641092b8
1 changed files with 2 additions and 5 deletions
|
@ -794,8 +794,8 @@ Imlib_Image load_image(const char *path, int cached)
|
|||
static unsigned long counter = 0;
|
||||
if (debug_icons)
|
||||
fprintf(stderr, "tint2: loading icon %s\n", path);
|
||||
#ifdef HAVE_RSVG
|
||||
image = imlib_load_image(path);
|
||||
#ifdef HAVE_RSVG
|
||||
if (!image && g_str_has_suffix(path, ".svg")) {
|
||||
char tmp_filename[128];
|
||||
snprintf(tmp_filename, sizeof(tmp_filename), "/tmp/tint2-%d-%lu.png", (int)getpid(), counter);
|
||||
|
@ -825,11 +825,8 @@ Imlib_Image load_image(const char *path, int cached)
|
|||
unlink(tmp_filename);
|
||||
}
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
image = imlib_load_image(path);
|
||||
}
|
||||
#endif
|
||||
imlib_context_set_image(image);
|
||||
imlib_image_set_changes_on_disk();
|
||||
return image;
|
||||
|
|
Loading…
Reference in a new issue