Function: ad-cache-id-verification-code
ad-cache-id-verification-code is a byte-compiled function defined in
advice.el.gz.
Signature
(ad-cache-id-verification-code FUNCTION)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/advice.el.gz
;; There should be a way to monitor if and why a cache verification failed
;; in order to determine whether a certain preactivation could be used or
;; not. Right now the only way to find out is to trace
;; `ad-cache-id-verification-code'. The code it returns indicates where the
;; verification failed. Tracing `ad-verify-cache-class-id' might provide
;; some additional useful information.
(defun ad-cache-id-verification-code (function)
(let ((cache-id (ad-get-cache-id function))
(code 'before-advice-mismatch))
(and (ad-verify-cache-class-id
(car cache-id) (ad-get-advice-info-field function 'before))
(setq code 'around-advice-mismatch)
(ad-verify-cache-class-id
(nth 1 cache-id) (ad-get-advice-info-field function 'around))
(setq code 'after-advice-mismatch)
(ad-verify-cache-class-id
(nth 2 cache-id) (ad-get-advice-info-field function 'after))
(setq code 'definition-type-mismatch)
(let ((original-definition (ad-real-orig-definition function))
(cached-definition (ad-get-cache-definition function)))
(and (eq (nth 3 cache-id) (ad-definition-type original-definition))
(setq code 'arglist-mismatch)
(equal (if (eq (nth 4 cache-id) t)
(ad-arglist original-definition)
(nth 4 cache-id) )
(ad-arglist cached-definition))
(setq code 'interactive-form-mismatch)
(or (null (nth 5 cache-id))
(equal (interactive-form original-definition)
(interactive-form cached-definition)))
(setq code 'verified))))
code))