Function: byte-compile-annotate-call-tree

byte-compile-annotate-call-tree is a byte-compiled function defined in bytecomp.el.gz.

Signature

(byte-compile-annotate-call-tree FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/bytecomp.el.gz
;;; call tree stuff

(defun byte-compile-annotate-call-tree (form)
  (let ((current-form (byte-run-strip-symbol-positions
                       byte-compile-current-form))
        (bare-car-form (byte-run-strip-symbol-positions (car form)))
        entry)
    ;; annotate the current call
    (if (setq entry (assq bare-car-form byte-compile-call-tree))
	(or (memq current-form (nth 1 entry)) ;callers
	    (setcar (cdr entry)
		    (cons current-form (nth 1 entry))))
      (setq byte-compile-call-tree
	    (cons (list bare-car-form (list current-form) nil)
		  byte-compile-call-tree)))
    ;; annotate the current function
    (if (setq entry (assq current-form byte-compile-call-tree))
	(or (memq bare-car-form (nth 2 entry)) ;called
	    (setcar (cdr (cdr entry))
		    (cons bare-car-form (nth 2 entry))))
      (setq byte-compile-call-tree
	    (cons (list current-form nil (list bare-car-form))
		  byte-compile-call-tree)))))