From c42190fb111c295d20523deceebe4b642c42dffb Mon Sep 17 00:00:00 2001 From: Phil Longstaff Date: Wed, 29 Dec 2010 01:39:49 +0000 Subject: [PATCH] Fix more memory leaks. scm_to_locale_string() returns a string which must be freed. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19986 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/gnome-utils/gnc-menu-extensions.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/gnome-utils/gnc-menu-extensions.c b/src/gnome-utils/gnc-menu-extensions.c index 8ce99dafd8..f480700a44 100644 --- a/src/gnome-utils/gnc-menu-extensions.c +++ b/src/gnome-utils/gnc-menu-extensions.c @@ -172,9 +172,17 @@ gnc_extension_path (SCM extension, char **fullpath) if (scm_is_string(item)) { if (i == 1) - strings[i] = g_strdup(scm_to_locale_string(item)); + { + strings[i] = scm_to_locale_string(item); + } else - strings[i] = g_strdup(gettext(scm_to_locale_string(item))); + { + gchar* s; + + s = scm_to_locale_string(item); + strings[i] = g_strdup(gettext(s)); + free(s); + } } else { @@ -253,7 +261,8 @@ gnc_create_extension_info (SCM extension) { ExtensionInfo *ext_info; gchar *typeStr, *tmp; - const gchar *name, *guid; + gchar* name; + gchar* guid; ext_info = g_new0(ExtensionInfo, 1); ext_info->extension = extension; @@ -274,6 +283,8 @@ gnc_create_extension_info (SCM extension) ext_info->ae.stock_id = NULL; ext_info->ae.accelerator = NULL; ext_info->ae.callback = NULL; + free(name); + free(guid); tmp = g_strdup_printf("%s/%s", ext_info->path, ext_info->ae.label); ext_info->sort_key = g_utf8_collate_key(tmp, -1);