Function: make-byte-to-native-func-def--cmacro
make-byte-to-native-func-def--cmacro is a function defined in
bytecomp.el.gz.
Signature
(make-byte-to-native-func-def--cmacro CL-WHOLE &cl-quote &key NAME C-NAME BYTE-FUNC)
Documentation
compiler-macro for inlining make-byte-to-native-func-def.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/bytecomp.el.gz
;; Closure converted to defun by helpful.
(defun make-byte-to-native-func-def--cmacro
(cl-whole &rest --cl-rest--)
"compiler-macro for inlining `make-byte-to-native-func-def'.\n\n\\(fn CL-WHOLE &cl-quote &key NAME C-NAME BYTE-FUNC)"
(let*
((name
(car
(cdr
(plist-member --cl-rest-- ':name))))
(c-name
(car
(cdr
(plist-member --cl-rest-- ':c-name))))
(byte-func
(car
(cdr
(plist-member --cl-rest-- ':byte-func)))))
(progn
(let
((--cl-keys-- --cl-rest--))
(while --cl-keys--
(cond
((memq
(car --cl-keys--)
'(:name :c-name :byte-func :allow-other-keys))
(unless
(cdr --cl-keys--)
(error "Missing argument for %s"
(car --cl-keys--)))
(setq --cl-keys--
(cdr
(cdr --cl-keys--))))
((car
(cdr
(memq ':allow-other-keys --cl-rest--)))
(setq --cl-keys-- nil))
(t
(error "Keyword argument %s not one of (:name :c-name :byte-func)"
(car --cl-keys--))))))
(cl-block make-byte-to-native-func-def--cmacro
(cl--defsubst-expand
'(name c-name byte-func)
'(cl-block make-byte-to-native-func-def
(record 'byte-to-native-func-def name c-name byte-func))
nil cl-whole nil name c-name byte-func)))))