emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Some issues with the tree-sitter branch


From: Yuan Fu
Subject: Re: Some issues with the tree-sitter branch
Date: Mon, 17 Oct 2022 02:12:13 -0700

> 
>> I added buffer size check at parser creation time, and used casts to 
>> uint32_t liberally, assuming the values never overflows and, so we don’t 
>> need to handle the error at a million places. But I should have added checks 
>> in ts_after_chang and other places where buffer size could change. I’ll add 
>> checks in ts_after_change and other places, and if the argumetns overflows 
>> uint32, it will set a flag (say, buffer_too_large) in the parser object, and 
>> next time any lisp function tries to use that parser, an buffer-too-large 
>> error will be signaled. WDYT?
> 
> That sounds fine to me, but I think we also should do something when
> some value that can be larger than UINT_MAX is passed to tree-sitter
> functions, because doing so might cause tree-sitter do something for a
> completely unrelated portion of the buffer.  At the very least add
> eassert there, so that at least a build with --enable-checking will
> detect such cases.

IIUC you don’t want to hide and delay the error, right? That makes sense. I can 
add assertions, those assertions shouldn’t interfere with normal usage.

Yuan


reply via email to

[Prev in Thread] Current Thread [Next in Thread]