emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master f06794d: [el-search] Some optimization tweaks


From: Michael Heerdegen
Subject: [elpa] master f06794d: [el-search] Some optimization tweaks
Date: Sat, 12 Jan 2019 05:22:23 -0500 (EST)

branch: master
commit f06794d7f3496071375e7273307e476d7faac85b
Author: Michael Heerdegen <address@hidden>
Commit: Michael Heerdegen <address@hidden>

    [el-search] Some optimization tweaks
    
    Make sure heuristic matchers aren't unnecessarily recomputed.  This is
    important for pattern types whose heuristic matchers need to do some
    kind of caching like 'el-search-change--heuristic-matcher'.
    Bump version to 1.9.2.
    
    * packages/el-search/el-search.el
    (el-search-heuristic-buffer-matcher): Allow to pass an existing
    heuristic matcher.
    (el-search--set-head-pattern): Compute heuristic matcher only once.
    (el-search-continue-search): Call
    'el-search-compile-pattern-in-search' only when necessary.
---
 packages/el-search/el-search.el | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/packages/el-search/el-search.el b/packages/el-search/el-search.el
index 27eceb0..a1d5634 100644
--- a/packages/el-search/el-search.el
+++ b/packages/el-search/el-search.el
@@ -7,7 +7,7 @@
 ;; Created: 29 Jul 2015
 ;; Keywords: lisp
 ;; Compatibility: GNU Emacs 25
-;; Version: 1.9.1
+;; Version: 1.9.2
 ;; Package-Requires: ((emacs "25") (stream "2.2.4") (cl-print "1.0"))
 
 
@@ -1512,8 +1512,8 @@ PATTERN and combining the heuristic matchers of the 
subpatterns."
       (walker tree)
       elements)))
 
-(defun el-search-heuristic-buffer-matcher (pattern)
-  (let ((heuristic-matcher (el-search-heuristic-matcher pattern)))
+(defun el-search-heuristic-buffer-matcher (pattern &optional hm)
+  (let ((heuristic-matcher (or hm (el-search-heuristic-matcher pattern))))
     (lambda (file-name-or-buffer)
       (el-search--message-no-log "%s"
                                  (if (stringp file-name-or-buffer)
@@ -1709,10 +1709,10 @@ position of the beginning of the match."
 (defun el-search--set-head-pattern (head pattern)
   (setf (el-search-head-matcher head)
         (el-search-make-matcher pattern))
-  (setf (el-search-head-heuristic-matcher head)
-        (el-search-heuristic-matcher pattern))
-  (setf (el-search-head-heuristic-buffer-matcher head)
-        (el-search-heuristic-buffer-matcher pattern))
+  (let ((hm (el-search-heuristic-matcher pattern)))
+    (setf (el-search-head-heuristic-matcher head) hm)
+    (setf (el-search-head-heuristic-buffer-matcher head)
+          (el-search-heuristic-buffer-matcher pattern hm)))
   head)
 
 (defun el-search-compile-pattern-in-search (search)
@@ -2733,8 +2733,8 @@ continued."
   (interactive "P")
   (setq this-command 'el-search-pattern)
   (unless (eq last-command this-command)
-    (el-search--set-search-origin-maybe))
-  (el-search-compile-pattern-in-search el-search--current-search)
+    (el-search--set-search-origin-maybe)
+    (el-search-compile-pattern-in-search el-search--current-search))
   (el-search-protect-search-head
    (unwind-protect
        (let* ((old-current-buffer (current-buffer))



reply via email to

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