mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
tools/go/analysis: Fix datarace in set of analysis.Fact
Fixes https://github.com/golang/go/issues/35098 Change-Id: I732edd5129de055138dc22e5e71f8ca3560d13e0 GitHub-Last-Rev: 3582f7669d70c48c5773ecf98f065f77be26c27f GitHub-Pull-Request: golang/tools#179 Reviewed-on: https://go-review.googlesource.com/c/tools/+/202718 Reviewed-by: Michael Matloob <matloob@golang.org>
This commit is contained in:
parent
e3efbe408c
commit
d78a1f2664
@ -101,11 +101,13 @@ func (s *Set) ExportObjectFact(obj types.Object, fact analysis.Fact) {
|
|||||||
|
|
||||||
func (s *Set) AllObjectFacts(filter map[reflect.Type]bool) []analysis.ObjectFact {
|
func (s *Set) AllObjectFacts(filter map[reflect.Type]bool) []analysis.ObjectFact {
|
||||||
var facts []analysis.ObjectFact
|
var facts []analysis.ObjectFact
|
||||||
|
s.mu.Lock()
|
||||||
for k, v := range s.m {
|
for k, v := range s.m {
|
||||||
if k.obj != nil && filter[k.t] {
|
if k.obj != nil && filter[k.t] {
|
||||||
facts = append(facts, analysis.ObjectFact{Object: k.obj, Fact: v})
|
facts = append(facts, analysis.ObjectFact{Object: k.obj, Fact: v})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
s.mu.Unlock()
|
||||||
return facts
|
return facts
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,11 +136,13 @@ func (s *Set) ExportPackageFact(fact analysis.Fact) {
|
|||||||
|
|
||||||
func (s *Set) AllPackageFacts(filter map[reflect.Type]bool) []analysis.PackageFact {
|
func (s *Set) AllPackageFacts(filter map[reflect.Type]bool) []analysis.PackageFact {
|
||||||
var facts []analysis.PackageFact
|
var facts []analysis.PackageFact
|
||||||
|
s.mu.Lock()
|
||||||
for k, v := range s.m {
|
for k, v := range s.m {
|
||||||
if k.obj == nil && filter[k.t] {
|
if k.obj == nil && filter[k.t] {
|
||||||
facts = append(facts, analysis.PackageFact{Package: k.pkg, Fact: v})
|
facts = append(facts, analysis.PackageFact{Package: k.pkg, Fact: v})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
s.mu.Unlock()
|
||||||
return facts
|
return facts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user