summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2020-03-29 11:21:55 +0100
committerAndrea Corallo <akrl@sdf.org>2020-03-29 12:30:33 +0100
commit530faee2752c7b316fa21f2ac4d1266d3e7a38e6 (patch)
treeb8ae2e3356a050c3df7b7a7ac8b02c3958cf9da0 /lisp/emacs-lisp
parent53f9bc6908a4da8f5c985e8f204a479c828c432d (diff)
downloademacs-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.el3
-rw-r--r--lisp/emacs-lisp/comp.el7
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))))