Function: byte-optimize-apply

byte-optimize-apply is a byte-compiled function defined in byte-opt.el.gz.

Signature

(byte-optimize-apply FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-apply (form)
  (let ((len (length form)))
    (if (>= len 2)
        (let ((fn (nth 1 form))
	      (last (nth (1- len) form)))
          (cond
           ;; (apply F ... '(X Y ...)) -> (funcall F ... 'X 'Y ...)
           ((or (null last)
                (eq (car-safe last) 'quote))
            (let ((last-value (nth 1 last)))
	      (if (listp last-value)
                  `(funcall ,fn ,@(butlast (cddr form))
                            ,@(mapcar (lambda (x) (list 'quote x)) last-value))
                (byte-compile-warn-x
                 last "last arg to apply can't be a literal atom: `%s'" last)
                nil)))
           ;; (apply F ... (list X Y ...)) -> (funcall F ... X Y ...)
           ((eq (car-safe last) 'list)
            `(funcall ,fn ,@(butlast (cddr form)) ,@(cdr last)))
           (t form)))
      form)))