aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/cover/html.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-04-09 09:02:58 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-04-09 08:33:12 +0000
commitda07505f2b87b144347aa19597979d340b134b06 (patch)
tree9b4cb823a01ffc801097465b1dc7a43f7092d826 /pkg/cover/html.go
parentbf86f5aaada407ff2fed28fe03bc0b892caf4e41 (diff)
pkg/cover: don't memorize all coverage points twice
Currently we memorize all coverage points twice: as a slice and as a map. The map also contains __sanitizer_cov_trace_cmp PCs, but I think that's wrong, it should contain only __sanitizer_cov_trace_pc callbacks. We were careful to put as least pressure on the GC as possible by keeping all PCs as a dense allCoverPoints slice and subslicing it in all symbol/compilation unit objects. Don't duplicate coverage points in the map and just use the same slice we store for other purposes.
Diffstat (limited to 'pkg/cover/html.go')
-rw-r--r--pkg/cover/html.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/cover/html.go b/pkg/cover/html.go
index 6e266ebce..319a61ddd 100644
--- a/pkg/cover/html.go
+++ b/pkg/cover/html.go
@@ -225,8 +225,8 @@ type CoverageInfo struct {
// DoCoverJSONL is a handler for "/cover?jsonl=1".
func (rg *ReportGenerator) DoCoverJSONL(w io.Writer, params CoverHandlerParams) error {
- if rg.CoverageCallbackPoints != nil {
- if err := rg.symbolizePCs(rg.CoverageCallbackPoints); err != nil {
+ if rg.CallbackPoints != nil {
+ if err := rg.symbolizePCs(rg.CallbackPoints); err != nil {
return fmt.Errorf("failed to symbolize PCs(): %w", err)
}
}