summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYuan Fu <casouri@gmail.com>2023-03-24 00:17:10 -0700
committerYuan Fu <casouri@gmail.com>2023-03-24 00:18:19 -0700
commit33d436eefa16dfd4cf53bd53fdd764b2896c649c (patch)
treeab1488544e46042b45df8cf35dd3ab95b3dd15fb /src
parentd93a439846f03dfb2be28d6b5c2e963ef6be0c22 (diff)
downloademacs-33d436eefa16dfd4cf53bd53fdd764b2896c649c.tar.gz
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.
Diffstat (limited to 'src')
-rw-r--r--src/treesit.c10
1 files 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;