emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] scratch/raeburn-startup 1184a17 08/43: Don't dump a copy o


From: Ken Raeburn
Subject: [Emacs-diffs] scratch/raeburn-startup 1184a17 08/43: Don't dump a copy of the obarray.
Date: Mon, 31 Jul 2017 02:10:59 -0400 (EDT)

branch: scratch/raeburn-startup
commit 1184a17f61549a5279ece2080cd12192cf8c4f66
Author: Ken Raeburn <address@hidden>
Commit: Ken Raeburn <address@hidden>

    Don't dump a copy of the obarray.
    
    The obarray was included by value in a function definition as a result
    of apply-partial, but it writes out as a simple array and a lot of
    chained symbols are discarded.
    
    * lisp/progmodes/elisp-mode.el (elisp--xref-identifier-completion-table):
    Rewrite definition to not directly incorporate the value of obarray.
---
 lisp/progmodes/elisp-mode.el | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index b3f452c..11d741c 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -810,15 +810,21 @@ non-nil result supercedes the xrefs produced by
             (push (elisp--xref-find-definitions sym) lst))
            (nreverse lst))))
 
+;; This used to use apply-partially, but that turned "obarray" into a
+;; reference to the actual obarray, not the symbol, and that's
+;; incompatible with the dumper code.
 (defvar elisp--xref-identifier-completion-table
-  (apply-partially #'completion-table-with-predicate
-                   obarray
-                   (lambda (sym)
-                     (or (boundp sym)
-                         (fboundp sym)
-                         (featurep sym)
-                         (facep sym)))
-                   'strict))
+  (lambda (string pred2 action)
+    (completion-table-with-predicate obarray
+                                     (lambda (sym)
+                                       (or (boundp sym)
+                                           (fboundp sym)
+                                           (featurep sym)
+                                           (facep sym)))
+                                     'strict
+                                     string
+                                     pred2
+                                     action)))
 
 (cl-defmethod xref-backend-identifier-completion-table ((_backend (eql elisp)))
   elisp--xref-identifier-completion-table)



reply via email to

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