1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

Make `procedure-execution-count' fail gracefully when no source info is available.

* module/system/vm/coverage.scm (procedure-execution-count): Handle the
  case where (null? (program-sources PROC)).
This commit is contained in:
Ludovic Courtès 2010-09-24 15:39:10 +02:00
parent 639b2eb710
commit 6edf58538f

View file

@ -199,12 +199,14 @@ coverage data. Return code coverage data and the values returned by THUNK."
if PROC was not executed. When PROC is a closure, the number of times its code
was executed is returned, not the number of times this code associated with this
particular closure was executed."
(let ((sources (program-sources* data proc)))
(and (pair? sources)
(and=> (hashx-ref hashq-proc assq-proc
(data-procedure->ip-counts data) proc)
(let ((sources (program-sources* data proc)))
(lambda (ip-counts)
(let ((entry-ip (source:addr (car sources)))) ;; FIXME: broken with lambda*
(hashv-ref ip-counts entry-ip 0))))))
;; FIXME: broken with lambda*
(let ((entry-ip (source:addr (car sources))))
(hashv-ref ip-counts entry-ip 0)))))))
(define (program-sources* data proc)
;; A memoizing version of `program-sources'.