diff options
author | Eric Albright <eric_albright@sil.org> | 2007-11-10 06:51:49 +0000 |
---|---|---|
committer | Eric Albright <eric_albright@sil.org> | 2007-11-10 06:51:49 +0000 |
commit | e889e3fa2be315ff3b0bd4121ec3b944a6fdcec8 (patch) | |
tree | 6994766826ea33c97f74d7ab7808cec954976a0d | |
parent | a5f96dab30d58652e152b65a6c6f0cfe6740013a (diff) | |
download | enchant-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.c | 26 |
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); } |