diff options
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r-- | lisp/emacs-lisp/comp.el | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 3f4dba6b1ff..9dc775bb6ac 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -474,14 +474,18 @@ Put PREFIX in front of it." "-" "_" orig-name)) (human-readable (replace-regexp-in-string (rx (not (any "0-9a-z_"))) "" human-readable))) - ;; Prevent C namespace conflicts. - (cl-loop - with h = (comp-ctxt-funcs-h comp-ctxt) - for i from 0 - for c-sym = (concat prefix crypted "_" human-readable "_" - (number-to-string i)) - unless (gethash c-sym h) - return c-sym))) + (if comp-ctxt + ;; Prevent C namespace conflicts. + (cl-loop + with h = (comp-ctxt-funcs-h comp-ctxt) + for i from 0 + for c-sym = (concat prefix crypted "_" human-readable "_" + (number-to-string i)) + unless (gethash c-sym h) + return c-sym) + ;; When called out of a compilation context (ex disassembling) + ;; pick the first one. + (concat prefix crypted "_" human-readable "_0")))) (defun comp-decrypt-arg-list (x function-name) "Decript argument list X for FUNCTION-NAME." |