diff options
author | Anton Lundin <glance@acc.umu.se> | 2014-12-18 08:47:42 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-12-18 07:20:10 -0800 |
commit | da154222cc659769770a625c17bf4162eb929f42 (patch) | |
tree | ff0072226b3d7e8b3772a25fa0bef657ffd245ca | |
parent | be1b79081d078b55aad0e85016d3ef2cd4cbdeaf (diff) | |
download | subsurface-da154222cc659769770a625c17bf4162eb929f42.tar.gz |
Free strduped prefs before exit
This plugs a leak detected by valgrind.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | main.cpp | 1 | ||||
-rw-r--r-- | subsurfacestartup.c | 17 | ||||
-rw-r--r-- | subsurfacestartup.h | 1 |
3 files changed, 19 insertions, 0 deletions
@@ -68,5 +68,6 @@ int main(int argc, char **argv) exit_ui(); parse_xml_exit(); subsurface_console_exit(); + free_prefs(); return 0; } diff --git a/subsurfacestartup.c b/subsurfacestartup.c index 8847ab36a..618e942f3 100644 --- a/subsurfacestartup.c +++ b/subsurfacestartup.c @@ -219,3 +219,20 @@ void setup_system_prefs(void) default_prefs.units = IMPERIAL_units; } + +/* + * Free strduped prefs before exit. + * + * These are not real leaks but they plug the holes found by eg. + * valgrind so you can find the real leaks. + */ +void free_prefs(void) +{ + free((void*)prefs.default_filename); + free((void*)prefs.default_cylinder); + free((void*)prefs.divelist_font); + free(prefs.proxy_host); + free(prefs.proxy_user); + free(prefs.proxy_pass); + free(prefs.userid); +} diff --git a/subsurfacestartup.h b/subsurfacestartup.h index 8eaaaa091..44db42efe 100644 --- a/subsurfacestartup.h +++ b/subsurfacestartup.h @@ -15,6 +15,7 @@ extern bool imported; void setup_system_prefs(void); void parse_argument(const char *arg); +void free_prefs(void); #ifdef __cplusplus } |