Memory management review: match char-malloc/strdup-free, gchar-g_str*/g_free; set pointers to null after free; initialize fonts/backgrounds correctly when missing from config

git-svn-id: http://tint2.googlecode.com/svn/trunk@748 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
o9000
2015-04-11 09:51:10 +00:00
committed by mrovi9000@gmail.com
parent 321ccc0794
commit af003d0e19
18 changed files with 228 additions and 148 deletions

View File

@@ -55,9 +55,9 @@ void free_ptr_array(gpointer data) { g_ptr_array_free(data, 1); }
void default_taskbar()
{
win_to_task_table = 0;
urgent_timeout = 0;
urgent_list = 0;
win_to_task_table = NULL;
urgent_timeout = NULL;
urgent_list = NULL;
taskbar_enabled = 0;
taskbar_distribute_size = 0;
hide_inactive_tasks = 0;
@@ -78,33 +78,38 @@ void cleanup_taskbar()
GHashTableIter iter;
gpointer key, value;
g_hash_table_iter_init (&iter, win_to_task_table);
if (g_hash_table_iter_next (&iter, &key, &value)) {
g_hash_table_iter_init(&iter, win_to_task_table);
if (g_hash_table_iter_next(&iter, &key, &value)) {
taskbar_remove_task(key, 0, 0);
}
}
g_hash_table_destroy(win_to_task_table);
win_to_task_table = NULL;
}
for (i=0 ; i < nb_panel ; i++) {
for (i = 0 ; i < nb_panel; i++) {
panel = &panel1[i];
for (j=0 ; j < panel->nb_desktop ; j++) {
for (j = 0; j < panel->nb_desktop; j++) {
tskbar = &panel->taskbar[j];
for (k=0; k<TASKBAR_STATE_COUNT; ++k) {
if (tskbar->state_pix[k]) XFreePixmap(server.dsp, tskbar->state_pix[k]);
for (k = 0; k < TASKBAR_STATE_COUNT; ++k) {
if (tskbar->state_pix[k])
XFreePixmap(server.dsp, tskbar->state_pix[k]);
tskbar->state_pix[k] = 0;
}
free_area (&tskbar->area);
free_area(&tskbar->area);
// remove taskbar from the panel
panel->area.list = g_slist_remove(panel->area.list, tskbar);
}
if (panel->taskbar) {
free(panel->taskbar);
panel->taskbar = 0;
panel->taskbar = NULL;
}
}
if (win_to_task_table) {
g_hash_table_destroy(win_to_task_table);
win_to_task_table = 0;
}
g_slist_free(urgent_list);
urgent_list = NULL;
stop_timeout(urgent_timeout);
urgent_timeout = NULL;
}
@@ -131,6 +136,8 @@ void init_taskbar_panel(void *p)
panel->g_taskbar.background_name[TASKBAR_NORMAL] = &g_array_index(backgrounds, Background, 0);
panel->g_taskbar.background_name[TASKBAR_ACTIVE] = &g_array_index(backgrounds, Background, 0);
}
if (!panel->g_task.font_desc)
panel->g_task.font_desc = pango_font_description_from_string(DEFAULT_FONT);
if (panel->g_task.area.bg == 0)
panel->g_task.area.bg = &g_array_index(backgrounds, Background, 0);