summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Albright <eric_albright@sil.org>2007-11-10 06:51:49 +0000
committerEric Albright <eric_albright@sil.org>2007-11-10 06:51:49 +0000
commite889e3fa2be315ff3b0bd4121ec3b944a6fdcec8 (patch)
tree6994766826ea33c97f74d7ab7808cec954976a0d
parenta5f96dab30d58652e152b65a6c6f0cfe6740013a (diff)
downloadenchant-e889e3fa2be315ff3b0bd4121ec3b944a6fdcec8.tar.gz
refactor enchant_dictionary_free_string_list to correctly clear session error and handle null input
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@22300 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r--src/enchant.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/enchant.c b/src/enchant.c
index c67d523..5cfeb44 100644
--- a/src/enchant.c
+++ b/src/enchant.c
@@ -469,19 +469,6 @@ enchant_provider_free_string_list (EnchantProvider * provider, char ** string_li
(*provider->free_string_list) (provider, string_list);
}
-static void
-enchant_dict_free_string_list_impl (EnchantDict * dict, char **string_list)
-{
- EnchantSession * session;
-
- g_return_if_fail (dict);
- g_return_if_fail (string_list);
-
- session = (EnchantSession*)dict->enchant_private_data;
- enchant_session_clear_error (session);
- enchant_provider_free_string_list (session->provider, string_list);
-}
-
/**
* enchant_dict_set_error
* @dict: A non-null dictionary
@@ -588,13 +575,13 @@ enchant_dict_suggest (EnchantDict * dict, const char *const word,
g_return_val_if_fail (dict, NULL);
g_return_val_if_fail (word, NULL);
- session = (EnchantSession*)dict->enchant_private_data;
-
if (len < 0)
len = strlen (word);
g_return_val_if_fail (len, NULL);
+ session = (EnchantSession*)dict->enchant_private_data;
+ enchant_session_clear_error (session);
/* Check for suggestions from personal dictionary */
if(session->personal)
pwl_suggs = enchant_pwl_suggest(session->personal, word, len, &n_pwl_suggs);
@@ -617,8 +604,8 @@ enchant_dict_suggest (EnchantDict * dict, const char *const word,
/* Copy over suggestions from dict */
for(i = 0; i < n_dict_suggs; i++)
suggs[i] = g_strdup (dict_suggs[i]);
- if(dict_suggs)
- enchant_dict_free_string_list_impl (dict, dict_suggs);
+ if(dict_suggs)
+ enchant_provider_free_string_list (session->provider, dict_suggs);
/* Copy over suggestions from pwl, except dupes */
for(j = 0; j < n_pwl_suggs; j++) {
@@ -798,7 +785,12 @@ enchant_dict_store_replacement (EnchantDict * dict,
ENCHANT_MODULE_EXPORT (void)
enchant_dict_free_string_list (EnchantDict * dict, char **string_list)
{
+ EnchantSession * session;
+
+ g_return_if_fail (dict);
g_return_if_fail (string_list);
+ session = (EnchantSession*)dict->enchant_private_data;
+ enchant_session_clear_error (session);
g_strfreev(string_list);
}