summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDom Lachowicz <domlachowicz@gmail.com>2009-06-30 01:51:52 +0000
committerDom Lachowicz <domlachowicz@gmail.com>2009-06-30 01:51:52 +0000
commitc2720c9973102047e26ff96313087e2b8e3e00c2 (patch)
tree9d375e32a133b4995f8165ea8f183b0c3064bfb9
parent2df87570be8134430565b9c70c3b22409ec1d681 (diff)
downloadenchant-c2720c9973102047e26ff96313087e2b8e3e00c2.tar.gz
bug 12173 - fix some small memory leaks. from Caolan.
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@27066 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r--src/enchant.c7
-rw-r--r--tests/enchant-ispell.c4
2 files changed, 8 insertions, 3 deletions
diff --git a/src/enchant.c b/src/enchant.c
index 5cfc1f8..1d2019b 100644
--- a/src/enchant.c
+++ b/src/enchant.c
@@ -606,6 +606,7 @@ _enchant_session_new (EnchantProvider *provider, const char * const user_config_
session = enchant_session_new_with_pwl (provider, dic, excl, lang, fail_if_no_pwl);
+ g_free (excl);
g_free (dic);
g_free (excl);
@@ -1615,11 +1616,13 @@ enchant_dict_destroyed (gpointer data)
EnchantDict *dict;
EnchantProvider *owner;
EnchantSession *session;
+ EnchantDictPrivateData *enchant_dict_private_data;
g_return_if_fail (data);
dict = (EnchantDict *) data;
- session = ((EnchantDictPrivateData*)dict->enchant_private_data)->session;
+ enchant_dict_private_data = (EnchantDictPrivateData*)dict->enchant_private_data;
+ session = enchant_dict_private_data->session;
owner = session->provider;
if (owner && owner->dispose_dict)
@@ -1627,6 +1630,8 @@ enchant_dict_destroyed (gpointer data)
else if(session->is_pwl)
g_free (dict);
+ g_free(enchant_dict_private_data);
+
enchant_session_destroy (session);
}
diff --git a/tests/enchant-ispell.c b/tests/enchant-ispell.c
index 331fb9c..e244be4 100644
--- a/tests/enchant-ispell.c
+++ b/tests/enchant-ispell.c
@@ -431,6 +431,8 @@ parse_file (FILE * in, FILE * out, IspellMode_t mode, int countLines, gchar *dic
do_mode_a (out, dict, word, pos, lineCount);
else if (mode == MODE_L)
do_mode_l (out, dict, word, lineCount);
+
+ g_string_free(word, TRUE);
}
if (token_ptr)
g_slist_free (token_ptr);
@@ -446,8 +448,6 @@ parse_file (FILE * in, FILE * out, IspellMode_t mode, int countLines, gchar *dic
enchant_broker_free_dict (broker, dict);
enchant_broker_free (broker);
- if (word)
- g_string_free (word, TRUE);
g_string_free (str, TRUE);
return 0;