Function: elp--make-wrapper
elp--make-wrapper is a byte-compiled function defined in elp.el.gz.
Signature
(elp--make-wrapper FUNSYM)
Documentation
Make the piece of advice that instruments FUNSYM.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/elp.el.gz
(defun elp--make-wrapper (funsym)
"Make the piece of advice that instruments FUNSYM."
(lambda (func &rest args)
"This function has been instrumented for profiling by the ELP.
ELP is the Emacs Lisp Profiler. To restore the function to its
original definition, use \\[elp-restore-function] or \\[elp-restore-all]."
;; turn on recording if this is the master function
(if (and elp-master
(eq funsym elp-master))
(setq elp-record-p t))
;; get info vector and original function symbol
(let* ((info (get funsym elp-timer-info-property))
result)
(or func
(error "%s is not instrumented for profiling" funsym))
(if (not elp-record-p)
;; when not recording, just call the original function symbol
;; and return the results.
(setq result (apply func args))
;; we are recording times
(let (enter-time)
;; increment the call-counter
(incf (aref info 0))
(setq enter-time (current-time)
result (apply func args))
;; calculate total time in function
(incf (aref info 1) (elp-elapsed-time enter-time nil))
))
;; turn off recording if this is the master function
(if (and elp-master
(eq funsym elp-master))
(setq elp-record-p nil))
result)))