Subject: bug#70059: 30.0.50; c-ts-mode crashes emacs

From: Yuan Fu <[email-masked]>
Date: Tue, 2 Apr 2024 11:20:27 -0700

> On Mar 31, 2024, at 12:43 AM, Eli Zaretskii <[email-masked]> wrote:
> 
>> From: Yuan Fu <[email-masked]>
>> Date: Sat, 30 Mar 2024 22:52:55 -0700
>> Cc: Felix <[email-masked]>,
>> [email-masked]
>> 
>> It’s a bit strange since Ftreesit_pattern_expand doesn’t call tree-sitter function. This function just expands a sexp query like '(function_definition @capture) to a string “(function_definition @capture)”. 
> 
> I'm not sure I follow: the backtrace shows that
> Ftreesit_pattern_expand called Fmapconcat, and I do see a call to
> Fmapconcat in Ftreesit_pattern_expand.  So what did you mean by
> "Ftreesit_pattern_expand doesn't call tree-sitter function"?

I should've been more precise, I mean it doesn’t call functions from tree-sitter library.

> 
>> Perhaps something it does triggers GC and GC tries to collect some tree-sitter node or parser, and there’s some problem when freeing the node or parser with that version of tree-sitter library.
> 
> Again, not sure I follow: according to the backtrace, Fmapconcat
> called mapconcat1, which called Ffuncall.  And Ffuncall is known to
> trigger GC if needed.

Ah, I didn’t know it, thanks for explaining that.

Yuan