1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-15 09:44:04 +00:00

Fix some minor memleaks, fix crash on reload.

It seems that closing xft fonts on reload is a bad idea, but this seems
to result in a memory leak.  As far as I can tell, the leak doesn't grow
beyond the initial allocation however.
This commit is contained in:
Brenden Matthews 2010-01-02 14:22:46 -08:00
parent 82614ebb22
commit bbb267586a
5 changed files with 21 additions and 2 deletions

View File

@ -3919,6 +3919,7 @@ static void main_loop(void)
current_config,
IN_MODIFY);
}
break;
}
#ifdef HAVE_LUA
else {

View File

@ -135,7 +135,13 @@ void free_fonts(void)
for (i = 0; i <= font_count; i++) {
#ifdef XFT
if (use_xft) {
XftFontClose(display, fonts[i].xftfont);
/*
* Do we not need to close fonts with Xft? Unsure. Not freeing the
* fonts seems to incur a slight memory leak, but it also prevents
* a crash.
*
* XftFontClose(display, fonts[i].xftfont);
*/
fonts[i].xftfont = 0;
} else
#endif /* XFT */

View File

@ -303,6 +303,14 @@ void llua_close(void)
free(draw_post_hook);
draw_post_hook = 0;
}
if (startup_hook) {
free(startup_hook);
startup_hook = 0;
}
if (shutdown_hook) {
free(shutdown_hook);
shutdown_hook = 0;
}
if(!lua_L) return;
lua_close(lua_L);
lua_L = NULL;
@ -398,11 +406,13 @@ void llua_set_number(const char *key, double value)
void llua_set_startup_hook(const char *args)
{
if (startup_hook) free(startup_hook);
startup_hook = strdup(args);
}
void llua_set_shutdown_hook(const char *args)
{
if (shutdown_hook) free(shutdown_hook);
shutdown_hook = strdup(args);
}

View File

@ -816,7 +816,7 @@ static void *imap_thread(void *arg)
recvbuf[numbytes] = '\0';
DBGP2("imap_thread() received: %s", recvbuf);
if (strlen(recvbuf) > 2) {
unsigned long messages, recent;
unsigned long messages, recent = 0;
char *buf = recvbuf;
char force_check = 0;
buf = strstr(buf, "EXISTS");

View File

@ -238,11 +238,13 @@ static int get_argb_visual(Visual** visual, int *depth) {
*visual = visual_list[i].visual;
*depth = visual_list[i].depth;
DBGP("Found ARGB Visual");
XFree(visual_list);
return 1;
}
}
// no argb visual available
DBGP("No ARGB Visual found");
XFree(visual_list);
return 0;
}
#endif /* USE_ARGB */