; Minor optimization in treesit range function
authorYuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Wed, 15 Jun 2022 19:17:10 +0000 (12:17 -0700)
committerYuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Thu, 16 Jun 2022 18:52:04 +0000 (11:52 -0700)
* src/treesit.c (Ftreesit_parser_set_included_ranges): Lift
assignment out of the loop.

src/treesit.c

index 88d5ea91223ecf23b428ff211096dede2d71e83a..585683aa1ba43659de2bffff0e1612199cc3a3a0 100644 (file)
@@ -786,12 +786,11 @@ is nil, set PARSER to parse the whole buffer.  */)
       /* Set ranges for PARSER.  */
       ptrdiff_t len = list_length (ranges);
       TSRange *ts_ranges = malloc (sizeof(TSRange) * len);
+      struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer);
 
       for (int idx=0; !NILP (ranges); idx++, ranges = XCDR (ranges))
        {
          Lisp_Object range = XCAR (ranges);
-         struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer);
-
          EMACS_INT beg_byte = buf_charpos_to_bytepos
            (buffer, XFIXNUM (XCAR (range)));
          EMACS_INT end_byte = buf_charpos_to_bytepos