Merge pull request #112 from cjfrisz/master

Fix profile counters for non-s-expression source
original commit: 526050b4b35a978e36abb10219215e1ab895223d
This commit is contained in:
Andy Keep 2016-11-28 21:44:56 -05:00 committed by GitHub
commit e76457ff5b
2 changed files with 9 additions and 2 deletions

3
LOG
View File

@ -322,3 +322,6 @@
examples/csocket.c, examples/socket.ss
- use high-precision clock time on Windows 8 and up
c/stats.c
- fixed profiling code that keyed profiling locations off of only the
bfp to instead key off of both the bfp and efp.
pdhtml.ss

View File

@ -201,13 +201,17 @@
(let ([fdatav (hashtable-values fdata-ht)])
(vector-for-each
(lambda (fdata)
(let ([entry* (sort (lambda (x y) (> (entrydata-bfp x) (entrydata-bfp y)))
(let ([entry* (sort (lambda (x y)
(or (> (entrydata-bfp x) (entrydata-bfp y))
(and (= (entrydata-bfp x) (entrydata-bfp y))
(> (entrydata-efp x) (entrydata-efp y)))))
(filedata-entry* fdata))])
#;(assert (not (null? entry*)))
(let loop ([entry (car entry*)] [entry* (cdr entry*)] [new-entry* '()])
(if (null? entry*)
(filedata-entry*-set! fdata (cons entry new-entry*))
(if (= (entrydata-bfp (car entry*)) (entrydata-bfp entry))
(if (and (= (entrydata-bfp (car entry*)) (entrydata-bfp entry))
(= (entrydata-efp (car entry*)) (entrydata-efp entry)))
(begin
(entrydata-count-set! entry
(+ (entrydata-count entry)