summaryrefslogtreecommitdiffstats
path: root/gtk-gui.c
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2012-10-04 23:52:09 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-10-05 23:44:37 +0900
commitb272fb8c3b7c552e4519d4e19af99d8139eaf733 (patch)
tree75c1ba6bd50835ee3340984f64ab8ef4e7a13e03 /gtk-gui.c
parentf928be5061744bb38c3aff8ea41dbd0c42851cbc (diff)
downloadsubsurface-b272fb8c3b7c552e4519d4e19af99d8139eaf733.tar.gz
Fixed some memory leaks related to string configuration entries
Each time we retrieve a string configuration entry via subsurface_get_conf(), all the multiplatform methods in linux.c, macos.c, windows.c allocate memory for the returned value. In gtk-gui.c, lets try to release the memory at: default_dive_computer_vendor, default_dive_computer_product, divelist_font before assigning a new address to these pointers. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'gtk-gui.c')
-rw-r--r--gtk-gui.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gtk-gui.c b/gtk-gui.c
index c4517fdd3..0312fe695 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -60,6 +60,10 @@ static void set_default_dive_computer(const char *vendor, const char *product)
return;
if (is_default_dive_computer(vendor, product))
return;
+ if (default_dive_computer_vendor)
+ free((void *)default_dive_computer_vendor);
+ if (default_dive_computer_product)
+ free((void *)default_dive_computer_product);
default_dive_computer_vendor = vendor;
default_dive_computer_product = product;
subsurface_set_conf("dive_computer_vendor", PREF_STRING, vendor);
@@ -673,6 +677,8 @@ static void preferences_dialog(GtkWidget *w, gpointer data)
/* Make sure to flush any modified old dive data with old units */
update_dive(NULL);
+ if (divelist_font)
+ free((void *)divelist_font);
divelist_font = strdup(gtk_font_button_get_font_name(GTK_FONT_BUTTON(font)));
set_divelist_font(divelist_font);