Lines Matching defs:BitBlock

39 // of pointers to bitvector chunks called BitBlocks.  Each BitBlock has a fixed
41 // each BitBlock correspond to the elements of the set.
93 //------------------------------ class BitBlock ----------------------------
94 // The BitBlock class is a segment of a bitvector set.
96 class BitBlock : public ResourceObj {
104 // A BitBlock is composed of some number of 32 bit words. When a BitBlock
110 BitBlock *_next;
115 void set_next(BitBlock *next) { _data._next = next; }
116 BitBlock *next() { return _data._next; }
118 // Operations. A BitBlock supports four simple operations,
154 //-------------------------- BitBlock allocation ---------------------------
169 // Invalidate the current free BitBlock list and begin allocation
171 // the Arena being used for BitBlock allocation is reset.
181 friend class BitBlock;
182 // A distinguished BitBlock which always remains empty. When a new IndexSet is
183 // created, all of its top level BitBlock pointers are initialized to point to
185 static BitBlock _empty_block;
193 BitBlock **_blocks;
195 BitBlock *_preallocated_block_list[preallocated_block_list_size];
234 BitBlock *get_block_containing(uint element) const {
240 void set_block(uint index, BitBlock *block) {
248 // Get a BitBlock from the free list
249 BitBlock *alloc_block();
251 // Get a BitBlock from the free list and place it in the top level array
252 BitBlock *alloc_block_containing(uint element);
254 // Free a block from the top level array, placing it on the free BitBlock list
267 BitBlock *block = _blocks[i];
290 BitBlock *block = get_block_containing(element);
307 BitBlock *block = get_block_containing(element);
336 // Initialize a IndexSet. If the top level BitBlock array needs to be
354 // BitBlock allocation statistics
429 IndexSet::BitBlock **_blocks;