mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 04:46:55 +03:00
Ticket #2856: Fixed mceditor 4.8.4 segfaults when aspell dictionaries aren't installed
Steps to reproduce: * compile mc with aspell support * remove all aspell's dictionaries * run mc and try to open any file in the internal editor * close the error dialog * try to exit from editor Expected behaviour: a file panels should be shown Actual behaviour: the segfault here. Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This commit is contained in:
parent
ed6cf8e3ad
commit
105ac777e1
@ -71,9 +71,7 @@ static struct AspellStringEnumeration *(*mc_aspell_word_list_elements) (const st
|
|||||||
* ths);
|
* ths);
|
||||||
static const char *(*mc_aspell_config_retrieve) (struct AspellConfig * ths, const char *key);
|
static const char *(*mc_aspell_config_retrieve) (struct AspellConfig * ths, const char *key);
|
||||||
static void (*mc_delete_aspell_speller) (struct AspellSpeller * ths);
|
static void (*mc_delete_aspell_speller) (struct AspellSpeller * ths);
|
||||||
/*
|
static void (*mc_delete_aspell_config) (struct AspellConfig * ths);
|
||||||
static void (*mc_delete_aspell_config) (struct AspellConfig * ths);
|
|
||||||
*/
|
|
||||||
static void (*mc_delete_aspell_can_have_error) (struct AspellCanHaveError * ths);
|
static void (*mc_delete_aspell_can_have_error) (struct AspellCanHaveError * ths);
|
||||||
static const char *(*mc_aspell_error_message) (const struct AspellCanHaveError * ths);
|
static const char *(*mc_aspell_error_message) (const struct AspellCanHaveError * ths);
|
||||||
static void (*mc_delete_aspell_string_enumeration) (struct AspellStringEnumeration * ths);
|
static void (*mc_delete_aspell_string_enumeration) (struct AspellStringEnumeration * ths);
|
||||||
@ -228,7 +226,7 @@ spell_available (void)
|
|||||||
(spell_module, "delete_aspell_speller", (void *) &mc_delete_aspell_speller))
|
(spell_module, "delete_aspell_speller", (void *) &mc_delete_aspell_speller))
|
||||||
goto error_ret;
|
goto error_ret;
|
||||||
|
|
||||||
if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_speller))
|
if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_config))
|
||||||
goto error_ret;
|
goto error_ret;
|
||||||
|
|
||||||
if (!g_module_symbol (spell_module, "delete_aspell_string_enumeration",
|
if (!g_module_symbol (spell_module, "delete_aspell_string_enumeration",
|
||||||
@ -311,7 +309,7 @@ aspell_init (void)
|
|||||||
{
|
{
|
||||||
edit_error_dialog (_("Error"), mc_aspell_error_message (error));
|
edit_error_dialog (_("Error"), mc_aspell_error_message (error));
|
||||||
mc_delete_aspell_can_have_error (error);
|
mc_delete_aspell_can_have_error (error);
|
||||||
g_free (global_speller);
|
aspell_clean ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,7 +324,12 @@ aspell_clean (void)
|
|||||||
if (global_speller == NULL)
|
if (global_speller == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mc_delete_aspell_speller (global_speller->speller);
|
if (global_speller->speller != NULL)
|
||||||
|
mc_delete_aspell_speller (global_speller->speller);
|
||||||
|
|
||||||
|
if (global_speller->config != NULL)
|
||||||
|
mc_delete_aspell_config (global_speller->config);
|
||||||
|
|
||||||
g_free (global_speller);
|
g_free (global_speller);
|
||||||
global_speller = NULL;
|
global_speller = NULL;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user