(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))
(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
(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))))