Subject: bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node

From: Eli Zaretskii <[email-masked]>
Date: Sat, 25 Feb 2023 09:55:33 +0200

> From: Yuan Fu <[email-masked]>
> Date: Fri, 24 Feb 2023 15:29:15 -0800
> Cc: [email-masked],
>  [email-masked]
> 
> Maybe it will help us understand the problem better, so here is the
> backtrace for the infinite loop. I’m not sure why treesit_delete_parser
> would trigger gc, as it just calls two tree_sitter functions:
> 
> void
> treesit_delete_parser (struct Lisp_TS_Parser *lisp_parser)
> {
>   ts_tree_delete (lisp_parser->tree);
>   ts_parser_delete (lisp_parser->parser);
> }

According to the backtrace, it's the other way around: Emacs called
some function via funcall, and funcall decided it was a good time to
do a GC.  Then GC called treesit_delete_parser, presumably because
that parser object was no longer in use?