idsFromFreemaps get all free page IDs from f.freemaps. used by test only.
()
| 249 | // idsFromFreemaps get all free page IDs from f.freemaps. |
| 250 | // used by test only. |
| 251 | func (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. |