From e6869c62495b8b68442ff6d096bf8de8f66f66e5 Mon Sep 17 00:00:00 2001 From: Guilhem Bonnefille Date: Thu, 22 Jan 2009 20:43:25 +0000 Subject: [PATCH] Enforce memory free Setting to NULL after a free avoid a wrong reuse. --- ChangeLog | 4 ++++ src/viktreeview.c | 12 +++++++++--- src/viktrwlayer_propwin.c | 2 ++ src/vikviewport.c | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 22c726eb..025edde0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-01-22 +Rob Norris : + * Fix 2249398: Fix some memory leaks + 2009-01-18 Guilhem Bonnefille : * configure.ac: allow to enable/disable geonames and select the search method diff --git a/src/viktreeview.c b/src/viktreeview.c index 45c25067..f04fc9e5 100644 --- a/src/viktreeview.c +++ b/src/viktreeview.c @@ -461,7 +461,7 @@ void vik_treeview_add_sublayer ( VikTreeview *vt, GtkTreeIter *parent_iter, GtkT void vik_treeview_sublayer_realphabetize ( VikTreeview *vt, GtkTreeIter *iter, const gchar *newname ) { GtkTreeIter search_iter, parent_iter; - gchar *search_name; + gchar *search_name = NULL; g_assert ( iter != NULL ); gtk_tree_model_iter_parent ( vt->model, &parent_iter, iter ); @@ -473,8 +473,12 @@ void vik_treeview_sublayer_realphabetize ( VikTreeview *vt, GtkTreeIter *iter, c if ( strcmp ( search_name, newname ) > 0 ) /* not >= or would trip on itself */ { gtk_tree_store_move_before ( GTK_TREE_STORE(vt->model), iter, &search_iter ); + g_free (search_name); + search_name = NULL; return; } + g_free (search_name); + search_name = NULL; } while ( gtk_tree_model_iter_next ( vt->model, &search_iter ) ); gtk_tree_store_move_before ( GTK_TREE_STORE(vt->model), iter, NULL ); @@ -485,7 +489,7 @@ void vik_treeview_add_sublayer_alphabetized gint data, GdkPixbuf *icon, gboolean has_visible, gboolean editable ) { GtkTreeIter search_iter; - gchar *search_name; + gchar *search_name = NULL; g_assert ( iter != NULL ); if ( gtk_tree_model_iter_children ( vt->model, &search_iter, parent_iter ) ) @@ -497,10 +501,12 @@ void vik_treeview_add_sublayer_alphabetized { gtk_tree_store_insert_before ( GTK_TREE_STORE(vt->model), iter, parent_iter, &search_iter ); found_greater_string = TRUE; - g_free (search_name); + g_free (search_name); + search_name = NULL; break; } g_free (search_name); + search_name = NULL; } while ( gtk_tree_model_iter_next ( vt->model, &search_iter ) ); if ( ! found_greater_string ) diff --git a/src/viktrwlayer_propwin.c b/src/viktrwlayer_propwin.c index d47daa4e..eb96f274 100644 --- a/src/viktrwlayer_propwin.c +++ b/src/viktrwlayer_propwin.c @@ -399,6 +399,7 @@ GtkWidget *vik_trw_layer_create_profile ( GtkWidget *window, VikTrack *tr, gpoin gdk_draw_line (GDK_DRAWABLE(pix), window->style->dark_gc[0], MARGIN, PROFILE_HEIGHT/LINES * i, MARGIN + PROFILE_WIDTH, PROFILE_HEIGHT/LINES * i); g_object_unref ( G_OBJECT ( pl ) ); + pl = NULL; } /* draw elevations */ @@ -531,6 +532,7 @@ GtkWidget *vik_trw_layer_create_vtdiag ( GtkWidget *window, VikTrack *tr, gpoint gdk_draw_line (GDK_DRAWABLE(pix), window->style->dark_gc[0], MARGIN, PROFILE_HEIGHT/LINES * i, MARGIN + PROFILE_WIDTH, PROFILE_HEIGHT/LINES * i); g_object_unref ( G_OBJECT ( pl ) ); + pl = NULL; } diff --git a/src/vikviewport.c b/src/vikviewport.c index 16230908..65028819 100644 --- a/src/vikviewport.c +++ b/src/vikviewport.c @@ -414,6 +414,7 @@ void vik_viewport_draw_scale ( VikViewport *vvp ) vik_viewport_draw_layout(vvp, GTK_WIDGET(&vvp->drawing_area)->style->black_gc, PAD + len + PAD, vvp->height - PAD - 10, pl); g_object_unref(pl); + pl = NULL; } } -- 2.39.5