From: Dmitry Gutov <dmitry@gutov.dev>
To: Denis Zubarev <dvzubarev@yandex.ru>, Yuan Fu <casouri@gmail.com>,
Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: Eli Zaretskii <eliz@gnu.org>,
"67977@debbugs.gnu.org" <67977@debbugs.gnu.org>
Subject: bug#67977: 30.0.50; tree-sitter: Emacs crashes when accessing treesit-nodes in a narrowed buffer
Date: Sun, 31 Dec 2023 15:40:28 +0200 [thread overview]
Message-ID: <ce452e6f-417c-4e00-8f92-b4bb019e9fb0@gutov.dev> (raw)
In-Reply-To: <10451704018554@mail.yandex.ru>
On 31/12/2023 12:39, Denis Zubarev wrote:
> Also there were errors when running benchmark in the narrowed buffer:
> Error muted by safe_call: (internal--syntax-propertize 1482) signaled
> (args-out-of-range 1 1872)
That does look like a bug.
The patch below seems to fix it:
diff --git a/lisp/treesit.el b/lisp/treesit.el
index 264b95dc3a3..46ebadcf057 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -1150,7 +1150,7 @@ treesit--pre-syntax-ppss
(if (and new-start (< new-start start))
(progn
(setq treesit--syntax-propertize-start nil)
- (cons new-start end))
+ (cons (max new-start (point-min)) end))
nil)))
;;; Indent
Or maybe syntax-propertize itself should have a protection against going
outside of bounds:
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index e35992298a6..61a9e79b59c 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -431,7 +431,7 @@ syntax-propertize
(if (or (null new)
(and (>= (car new) start) (<= (cdr new)
end)))
nil
- (setq start (car new))
+ (setq start (max (car new) (point-min)))
(setq end (cdr new))
;; If there's been a change, we should go
through the
;; list again since this new position may
next prev parent reply other threads:[~2023-12-31 13:40 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-22 23:18 bug#67977: 30.0.50; tree-sitter: Emacs crashes when accessing treesit-nodes in a narrowed buffer Denis Zubarev
2023-12-23 7:26 ` Eli Zaretskii
2023-12-23 8:08 ` Yuan Fu
2023-12-24 3:00 ` Yuan Fu
2023-12-24 7:11 ` Eli Zaretskii
2023-12-27 4:15 ` Yuan Fu
2023-12-27 12:57 ` Eli Zaretskii
2023-12-28 8:07 ` Yuan Fu
2023-12-28 11:44 ` Dmitry Gutov
2023-12-28 13:53 ` Eli Zaretskii
2023-12-28 16:16 ` Dmitry Gutov
2023-12-29 7:00 ` Yuan Fu
2023-12-29 12:48 ` Dmitry Gutov
2023-12-30 4:35 ` Yuan Fu
2023-12-30 16:21 ` Denis Zubarev
2023-12-30 20:23 ` Yuan Fu
2023-12-31 0:08 ` Dmitry Gutov
2023-12-31 10:39 ` Denis Zubarev
2023-12-31 12:56 ` Eli Zaretskii
2023-12-31 13:40 ` Dmitry Gutov [this message]
2024-01-02 4:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-02 13:34 ` Dmitry Gutov
2024-01-02 22:58 ` Yuan Fu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ce452e6f-417c-4e00-8f92-b4bb019e9fb0@gutov.dev \
--to=dmitry@gutov.dev \
--cc=67977@debbugs.gnu.org \
--cc=casouri@gmail.com \
--cc=dvzubarev@yandex.ru \
--cc=eliz@gnu.org \
--cc=monnier@IRO.UMontreal.CA \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).