Branch: refs/heads/master Author: Enrico Tröger enrico.troeger@uvena.de Committer: Enrico Tröger enrico.troeger@uvena.de Date: Sat, 01 Feb 2014 13:14:37 UTC Commit: c6e149e9491f6594e574d42633c45b81075503a6 https://github.com/geany/geany-plugins/commit/c6e149e9491f6594e574d42633c45b...
Log Message: ----------- Merge pull request #129 from b4n/spellcheck/fix-timeout-callback
spellcheck: Fix crash when closing a document quickly after adding data to it
Modified Paths: -------------- spellcheck/src/gui.c
Modified: spellcheck/src/gui.c 27 files changed, 16 insertions(+), 11 deletions(-) =================================================================== @@ -412,21 +412,26 @@ static void indicator_clear_on_line(GeanyDocument *doc, gint line_number) static gboolean check_lines(gpointer data) { GeanyDocument *doc = check_line_data.doc; - gchar *line; - gint line_number = check_line_data.line_number; - gint line_count = check_line_data.line_count; - gint i;
- for (i = 0; i < line_count; i++) + /* since we're in an timeout callback, the document may have been closed */ + if (DOC_VALID (doc)) { - line = sci_get_line(doc->editor->sci, line_number); - indicator_clear_on_line(doc, line_number); - if (sc_speller_process_line(doc, line_number, line) != 0) + gchar *line; + gint line_number = check_line_data.line_number; + gint line_count = check_line_data.line_count; + gint i; + + for (i = 0; i < line_count; i++) { - if (sc_info->use_msgwin) - msgwin_switch_tab(MSG_MESSAGE, FALSE); + line = sci_get_line(doc->editor->sci, line_number); + indicator_clear_on_line(doc, line_number); + if (sc_speller_process_line(doc, line_number, line) != 0) + { + if (sc_info->use_msgwin) + msgwin_switch_tab(MSG_MESSAGE, FALSE); + } + g_free(line); } - g_free(line); } check_line_data.check_while_typing_idle_source_id = 0; return FALSE;
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).