Skip to content

Commit 4ebb639

Browse files
committed
Fix collecting reference cycle sources
1 parent 403fecb commit 4ebb639

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

Diff for: hypervisor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func mergeSearchFunctions[F ~func(K) (V, bool), K comparable, V any](functions [
5656
}
5757

5858
func (h *hypervisor) mergeGenerations(sizesBefore, sizesAfter []int) {
59-
for i := len(sizesBefore) - 3; i >= 0; i-- { // len(sizesBefore) == len(sizesAfter)
59+
for i := len(sizesBefore) - 3; i >= 0; i-- { // suppose that len(sizesBefore) == len(sizesAfter)
6060
if float64(sizesAfter[i])/float64(sizesBefore[i]) <= generationMovementThreshold {
6161
h.mem.movingGenerations[i].MoveTo(h.mem.movingGenerations[i+1])
6262
}

Diff for: internal/generation/mark_worker.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func (mw markWorker) processObject(object *ObjectMetadata, visited bool) (rcSrcs
127127
if nextObject == object {
128128
continue
129129
}
130-
rcSrcs = mw.processObject(nextObject, visited)
130+
rcSrcs = append(rcSrcs, mw.processObject(nextObject, visited)...)
131131
delete(mw.visited, nextObject.address)
132132
if len(rcSrcs) != 0 {
133133
object.cyclicallyReferenced = true
@@ -137,8 +137,8 @@ func (mw markWorker) processObject(object *ObjectMetadata, visited bool) (rcSrcs
137137
}
138138
}
139139
} else {
140-
rcSrcs = append(rcSrcs, rcSrc)
141140
object.Unlock()
141+
rcSrcs = append(rcSrcs, rcSrc)
142142
}
143143

144144
return

0 commit comments

Comments
 (0)