Branch: refs/heads/master
Author: Enrico Tröger <enrico.troeger(a)uvena.de>
Committer: Enrico Tröger <enrico.troeger(a)uvena.de>
Date: Sun, 07 May 2017 14:02:07 UTC
Commit: 1c0ef17f4b0a04c7322b38dd23bd4d9a3ec406d2
https://github.com/geany/geany-plugins/commit/1c0ef17f4b0a04c7322b38dd23bd4…
Log Message:
-----------
Stop processing if the document gets invalid
This might happen if the current document is closed during
a check of a large document.
Fixes #547.
Modified Paths:
--------------
spellcheck/src/speller.c
Modified: spellcheck/src/speller.c
8 lines changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -211,6 +211,9 @@ gint sc_speller_process_line(GeanyDocument *doc, gint line_number)
g_return_val_if_fail(sc_speller_dict != NULL, 0);
g_return_val_if_fail(doc != NULL, 0);
+ if (! DOC_VALID(doc))
+ return 0; /* current document has been closed */
+
/* add ' (single quote) temporarily to wordchars
* to be able to check for "doesn't", "isn't" and similar */
wordchars_len = scintilla_send_message(doc->editor->sci, SCI_GETWORDCHARS, 0, 0);
@@ -317,6 +320,11 @@ void sc_speller_check_document(GeanyDocument *doc)
{
for (i = first_line; i < last_line; i++)
{
+ if (! DOC_VALID(doc))
+ { /* current document has been closed (might happen while checking large files) */
+ ui_progress_bar_stop();
+ return;
+ }
suggestions_found += sc_speller_process_line(doc, i);
/* process other GTK events to keep the GUI being responsive */
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).