emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 33d436eefa1: Fix treesit_ensure_parsed (bug#62333)


From: Yuan Fu
Subject: emacs-29 33d436eefa1: Fix treesit_ensure_parsed (bug#62333)
Date: Fri, 24 Mar 2023 03:27:14 -0400 (EDT)

branch: emacs-29
commit 33d436eefa16dfd4cf53bd53fdd764b2896c649c
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>

    Fix treesit_ensure_parsed (bug#62333)
    
    * src/treesit.c (treesit_ensure_parsed): Check for need_reparse after
    treesit_sync_visible_region runs, because as the comment says,
    treesit_sync_visible_region might modify need_reparse.
---
 src/treesit.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/treesit.c b/src/treesit.c
index 5a4fe3e8803..1bb52888f4b 100644
--- a/src/treesit.c
+++ b/src/treesit.c
@@ -1016,11 +1016,6 @@ treesit_call_after_change_functions (TSTree *old_tree, 
TSTree *new_tree,
 static void
 treesit_ensure_parsed (Lisp_Object parser)
 {
-  /* Make sure this comes before everything else, see comment
-     (ref:notifier-inside-ensure-parsed) for more detail.  */
-  if (!XTS_PARSER (parser)->need_reparse)
-    return;
-
   struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer);
 
   /* Before we parse, catch up with the narrowing situation.  */
@@ -1029,6 +1024,11 @@ treesit_ensure_parsed (Lisp_Object parser)
      because it might set the flag to true.  */
   treesit_sync_visible_region (parser);
 
+  /* Make sure this comes before everything else, see comment
+     (ref:notifier-inside-ensure-parsed) for more detail.  */
+  if (!XTS_PARSER (parser)->need_reparse)
+    return;
+
   TSParser *treesit_parser = XTS_PARSER (parser)->parser;
   TSTree *tree = XTS_PARSER (parser)->tree;
   TSInput input = XTS_PARSER (parser)->input;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]