diff --git a/LOG b/LOG index eb70f2ed1f..12ecf1ed38 100644 --- a/LOG +++ b/LOG @@ -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 diff --git a/s/pdhtml.ss b/s/pdhtml.ss index ead51ab1dd..ef24d04713 100644 --- a/s/pdhtml.ss +++ b/s/pdhtml.ss @@ -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)