diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2012-10-01 22:22:12 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-10-01 14:06:46 -0700 |
commit | 0559a6a7831ecdae9274fa5e67f941660a6bbab1 (patch) | |
tree | 5f4143eb947481f883f48c0826d4a60329fcb391 | |
parent | 3244a828f3df9b0403db7de742de399edcb395bb (diff) | |
download | subsurface-0559a6a7831ecdae9274fa5e67f941660a6bbab1.tar.gz |
Fixed some small memory leaks
Looks like a GtkEntryCompletion object created with
gtk_entry_completion_new() should be unreferenced after usage
(e.g. post gtk_entry_set_completion())
In info.c:get_combo_box_entry_text(), moved the free(..) line outside,
so that we can free regardless.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | equipment.c | 1 | ||||
-rw-r--r-- | gtk-gui.c | 1 | ||||
-rw-r--r-- | info.c | 5 |
3 files changed, 5 insertions, 2 deletions
diff --git a/equipment.c b/equipment.c index 503f238c5..e30f40d1e 100644 --- a/equipment.c +++ b/equipment.c @@ -941,6 +941,7 @@ static void cylinder_widget(GtkWidget *vbox, struct cylinder_widget *cylinder, G gtk_entry_completion_set_model(completion, GTK_TREE_MODEL(model)); g_signal_connect(completion, "match-selected", G_CALLBACK(completion_cb), cylinder); gtk_entry_set_completion(entry, completion); + g_object_unref(completion); hbox = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); @@ -705,6 +705,7 @@ static void preferences_dialog(GtkWidget *w, gpointer data) /* Flush the changes out to the system */ subsurface_flush_conf(); } + free((void *)current_default); gtk_widget_destroy(dialog); } @@ -264,6 +264,7 @@ static GtkComboBoxEntry *text_entry(GtkWidget *box, const char *label, GtkListSt gtk_entry_completion_set_inline_selection(completion, TRUE); gtk_entry_completion_set_popup_single_match(completion, FALSE); gtk_entry_set_completion(entry, completion); + g_object_unref(completion); return GTK_COMBO_BOX_ENTRY(combo_box); } @@ -427,9 +428,9 @@ static void save_dive_info_changes(struct dive *dive, struct dive *master, struc new_text = get_combo_box_entry_text(info->rating, &rating_string, star_strings[master->rating]); if (new_text) { dive->rating = get_rating(rating_string); - free(rating_string); - changed =1; + changed = 1; } + free(rating_string); if (info->notes) { old_text = dive->notes; |