MCPcopy
hub / github.com/etcd-io/bbolt / idsFromFreemaps

Method idsFromFreemaps

internal/freelist/hashmap.go:251–265  ·  view source on GitHub ↗

idsFromFreemaps get all free page IDs from f.freemaps. used by test only.

()

Source from the content-addressed store, hash-verified

249// idsFromFreemaps get all free page IDs from f.freemaps.
250// used by test only.
251func (f *hashMap) idsFromFreemaps() map[common.Pgid]struct{} {
252 ids := make(map[common.Pgid]struct{})
253 for size, idSet := range f.freemaps {
254 for start := range idSet {
255 for i := 0; i < int(size); i++ {
256 id := start + common.Pgid(i)
257 if _, ok := ids[id]; ok {
258 panic(fmt.Sprintf("detected duplicated free page ID: %d in f.freemaps: %v", id, f.freemaps))
259 }
260 ids[id] = struct{}{}
261 }
262 }
263 }
264 return ids
265}
266
267// idsFromForwardMap get all free page IDs from f.forwardMap.
268// used by test only.

Callers 1

mergeSpansMethod · 0.95

Calls 1

PgidTypeAlias · 0.92

Tested by

no test coverage detected