Subject: bug#67977: 30.0.50; tree-sitter: Emacs crashes when accessing treesit-nodes in a narrowed buffer

From: Eli Zaretskii <[email-masked]>
Date: Sat, 23 Dec 2023 09:26:28 +0200

> From: Denis Zubarev <[email-masked]>
> Date: Sat, 23 Dec 2023 02:18:20 +0300
> 
> 1. emacs -Q
> 2. M-x find-file /tmp/t.py
> 3. paste there
> start=1
> def _init(self, param1, param2, param3=False):
>     self._param1 = param2
>     self._param2 = param2
>     self._param3 = param3
> 4. python-ts-mode
> 5. select two last lines and M-x narrow-to-region
> 6. answer all prompts
> 7. Put cursor on the last self
> 8. M-x eval-expression
> (progn
> (setq temp-node (treesit-node-at (point)))
> (sit-for 2)
> (garbage-collect)
> (message "node %s" temp-node))
> 9. Emacs crashes or prints node that contains garbage

Thanks.

Yuan, this also happens on the emacs-29 branch, so we should try
fixing this crash ASAP.