]> git.eshelyaron.com Git - emacs.git/commitdiff
completion-pcm--hilit-commonality: Reuse the match-data cons cells
authorDmitry Gutov <dgutov@yandex.ru>
Sun, 6 Jun 2021 21:57:42 +0000 (00:57 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Sun, 6 Jun 2021 21:57:50 +0000 (00:57 +0300)
* lisp/minibuffer.el (completion-pcm--hilit-commonality): Reuse
the match-data cons cells for better performance (bug#48841).

lisp/minibuffer.el

index ec21b7b93b69beeaef289b21c93238c9ab3540ac..d5a0118b7c0345f54c773ba2739209b3694e6105 100644 (file)
@@ -3484,7 +3484,8 @@ between 0 and 1, and with faces `completions-common-part',
   (when completions
     (let* ((re (completion-pcm--pattern->regex pattern 'group))
            (point-idx (completion-pcm--pattern-point-idx pattern))
-           (case-fold-search completion-ignore-case))
+           (case-fold-search completion-ignore-case)
+           last-md)
       (mapcar
        (lambda (str)
         ;; Don't modify the string itself.
@@ -3493,7 +3494,7 @@ between 0 and 1, and with faces `completions-common-part',
            (error "Internal error: %s does not match %s" re str))
          (let* ((pos (if point-idx (match-beginning point-idx) (match-end 0)))
                 (match-end (match-end 0))
-                (md (cddr (match-data)))
+                (md (cddr (setq last-md (match-data t last-md))))
                 (from 0)
                 (end (length str))
                 ;; To understand how this works, consider these simple