diff options
author | Andrea Corallo <akrl@sdf.org> | 2020-03-29 11:21:55 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2020-03-29 12:30:33 +0100 |
commit | 530faee2752c7b316fa21f2ac4d1266d3e7a38e6 (patch) | |
tree | b8ae2e3356a050c3df7b7a7ac8b02c3958cf9da0 /lisp/emacs-lisp | |
parent | 53f9bc6908a4da8f5c985e8f204a479c828c432d (diff) | |
download | emacs-530faee2752c7b316fa21f2ac4d1266d3e7a38e6.tar.gz emacs-530faee2752c7b316fa21f2ac4d1266d3e7a38e6.tar.bz2 emacs-530faee2752c7b316fa21f2ac4d1266d3e7a38e6.zip |
Fix free function compilation
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 3 | ||||
-rw-r--r-- | lisp/emacs-lisp/comp.el | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 977f137b793..b3631074472 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -3120,7 +3120,8 @@ for symbols generated by the byte compiler itself." (out (list 'byte-code (byte-compile-lapcode byte-compile-output) byte-compile-vector byte-compile-maxdepth))) (when (and byte-native-compiling - (null byte-compile-not-top-level)) + (or (null byte-compile-not-top-level) + (eq byte-native-compiling 'free-func))) ;; Spill LAP for the native compiler here (push (cons byte-compile-current-form byte-compile-output) byte-to-native-lap)) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 92d0655ffdc..d29e2f55f1f 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -514,7 +514,8 @@ Put PREFIX in front of it." (cl-defgeneric comp-spill-lap-function ((function-name symbol)) "Byte compile FUNCTION-NAME spilling data from the byte compiler." - (let* ((f (symbol-function function-name)) + (let* ((byte-native-compiling 'free-func) + (f (symbol-function function-name)) (c-name (comp-c-func-name function-name "F")) (func (make-comp-func :name function-name :c-name c-name @@ -536,8 +537,8 @@ Put PREFIX in front of it." (comp-func-frame-size func) (comp-byte-frame-size (comp-func-byte-func func)))) (setf (comp-ctxt-top-level-forms comp-ctxt) - (list (make-byte-to-native-function :name function-name))) - (setf (byte-to-native-function-c-name func) c-name) + (list (make-byte-to-native-function :name function-name + :c-name c-name))) ;; Create the default array. (puthash 0 (comp-func-frame-size func) (comp-func-array-h func)) (comp-add-func-to-ctxt func)))) |