[geany/geany-plugins] 1c0ef1: Stop processing if the document gets invalid

Enrico Tröger git-noreply at xxxxx
Sun May 7 14:02:07 UTC 2017


Branch:      refs/heads/master
Author:      Enrico Tröger <enrico.troeger at uvena.de>
Committer:   Enrico Tröger <enrico.troeger at uvena.de>
Date:        Sun, 07 May 2017 14:02:07 UTC
Commit:      1c0ef17f4b0a04c7322b38dd23bd4d9a3ec406d2
             https://github.com/geany/geany-plugins/commit/1c0ef17f4b0a04c7322b38dd23bd4d9a3ec406d2

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).


More information about the Plugins-Commits mailing list