Lines Matching defs:overflow
24 // return the keys in walk order (bucket #, then overflow
33 // Picking loadFactor: too large and we have lots of overflow
37 // loadFactor %overflow bytes/entry hitprobe missprobe
48 // %overflow = percentage of buckets which have an overflow bucket
84 // Each bucket (including its overflow buckets, if any) will have either all or none of its
116 // However, bmap.overflow is a pointer. In order to keep overflow buckets
117 // alive, we store pointers to all overflow buckets in hmap.overflow.
118 // Overflow is used only if key and value do not contain pointers.
119 // overflow[0] contains overflow buckets for hmap.buckets.
120 // overflow[1] contains overflow buckets for hmap.oldbuckets.
123 overflow *[2]*[]*bmap
133 // Followed by an overflow pointer.
146 overflow [2]*[]*bmap // keeps overflow buckets alive
161 func (b *bmap) overflow(t *maptype) *bmap {
168 *h.overflow[0] = append(*h.overflow[0], ovf)
174 if h.overflow == nil {
175 h.overflow = new([2]*[]*bmap)
177 if h.overflow[0] == nil {
178 h.overflow[0] = new([]*bmap)
313 b = b.overflow(t)
361 b = b.overflow(t)
404 b = b.overflow(t)
472 ovf := b.overflow(t)
552 b = b.overflow(t)
567 it.overflow[0] = nil
568 it.overflow[1] = nil
592 // This preserves all relevant overflow buckets alive even if
593 // the table grows and/or overflow buckets are added to the table
596 it.overflow = *h.overflow
751 b = b.overflow(t)
773 if h.overflow != nil {
774 // Promote current overflow buckets to the old generation.
775 if h.overflow[1] != nil {
776 throw("overflow is not nil")
778 h.overflow[1] = h.overflow[0]
779 h.overflow[0] = nil
804 // TODO: reuse overflow buckets instead of using new ones, if there
815 for ; b != nil; b = b.overflow(t) {
909 // Unlink the overflow buckets & clear key/value to help GC.
922 // Can discard old overflow buckets as well.
925 if h.overflow != nil {
926 h.overflow[1] = nil