Lines Matching refs:pBits
53 void dvmFreeBitVector(BitVector* pBits) in dvmFreeBitVector() argument
55 if (pBits == NULL) in dvmFreeBitVector()
58 free(pBits->storage); in dvmFreeBitVector()
59 free(pBits); in dvmFreeBitVector()
69 int dvmAllocBit(BitVector* pBits) in dvmAllocBit() argument
74 for (word = 0; word < pBits->storageSize; word++) { in dvmAllocBit()
75 if (pBits->storage[word] != 0xffffffff) { in dvmAllocBit()
79 bit = ffs(~(pBits->storage[word])) -1; in dvmAllocBit()
81 pBits->storage[word] |= 1 << bit; in dvmAllocBit()
89 if (!pBits->expandable) in dvmAllocBit()
92 pBits->storage = (u4*)realloc(pBits->storage, in dvmAllocBit()
93 (pBits->storageSize + kBitVectorGrowth) * sizeof(u4)); in dvmAllocBit()
94 memset(&pBits->storage[pBits->storageSize], 0x00, in dvmAllocBit()
96 pBits->storageSize += kBitVectorGrowth; in dvmAllocBit()
103 void dvmSetBit(BitVector* pBits, unsigned int num) in dvmSetBit() argument
105 if (num >= pBits->storageSize * sizeof(u4) * 8) { in dvmSetBit()
106 if (!pBits->expandable) { in dvmSetBit()
108 num, pBits->storageSize * sizeof(u4) * 8); in dvmSetBit()
114 assert(newSize > pBits->storageSize); in dvmSetBit()
115 pBits->storage = (u4*)realloc(pBits->storage, newSize * sizeof(u4)); in dvmSetBit()
116 if (pBits->storage == NULL) { in dvmSetBit()
120 memset(&pBits->storage[pBits->storageSize], 0x00, in dvmSetBit()
121 (newSize - pBits->storageSize) * sizeof(u4)); in dvmSetBit()
122 pBits->storageSize = newSize; in dvmSetBit()
125 pBits->storage[num >> 5] |= 1 << (num & 0x1f); in dvmSetBit()
131 void dvmClearBit(BitVector* pBits, unsigned int num) in dvmClearBit() argument
133 assert(num < pBits->storageSize * sizeof(u4) * 8); in dvmClearBit()
135 pBits->storage[num >> 5] &= ~(1 << (num & 0x1f)); in dvmClearBit()
141 void dvmClearAllBits(BitVector* pBits) in dvmClearAllBits() argument
143 unsigned int count = pBits->storageSize; in dvmClearAllBits()
144 memset(pBits->storage, 0, count * sizeof(u4)); in dvmClearAllBits()
152 void dvmSetInitialBits(BitVector* pBits, unsigned int numBits) in dvmSetInitialBits() argument
155 assert(((numBits + 31) >> 5) <= pBits->storageSize); in dvmSetInitialBits()
157 pBits->storage[idx] = -1; in dvmSetInitialBits()
161 pBits->storage[idx] = (1 << remNumBits) - 1; in dvmSetInitialBits()
168 bool dvmIsBitSet(const BitVector* pBits, unsigned int num) in dvmIsBitSet() argument
170 assert(num < pBits->storageSize * sizeof(u4) * 8); in dvmIsBitSet()
172 unsigned int val = pBits->storage[num >> 5] & (1 << (num & 0x1f)); in dvmIsBitSet()
179 int dvmCountSetBits(const BitVector* pBits) in dvmCountSetBits() argument
184 for (word = 0; word < pBits->storageSize; word++) { in dvmCountSetBits()
185 u4 val = pBits->storage[word]; in dvmCountSetBits()
282 void dvmBitVectorIteratorInit(BitVector* pBits, BitVectorIterator* iterator) in dvmBitVectorIteratorInit() argument
284 iterator->pBits = pBits; in dvmBitVectorIteratorInit()
285 iterator->bitSize = pBits->storageSize * sizeof(u4) * 8; in dvmBitVectorIteratorInit()
292 const BitVector* pBits = iterator->pBits; in dvmBitVectorIteratorNext() local
295 assert(iterator->bitSize == pBits->storageSize * sizeof(u4) * 8); in dvmBitVectorIteratorNext()
301 if (pBits->storage[wordIndex] & mask) { in dvmBitVectorIteratorNext()