Changeset 1c4d613e749d9e677b5d4a13214e93bfee485937
- Timestamp:
- 04/30/08 12:52:10 (8 months ago)
- Author:
- krayouva <krayouva@…>
- Parents:
- ed4cf588b31c5ebb50b4d502802d243fec2cb338
- Children:
- 75ff31607066f7bcb0b471c3652443662c0f985f
- git-committer:
- krayouva <krayouva@gmail.com> / 2008-04-29T22:52:10Z-0400
- Message:
-
* Forgot to removed factored out bv_unset
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
red4cf5
|
r1c4d61
|
|
| 35 | 35 | bv->count = 0; |
| 36 | 36 | bv->size = 0; |
| 37 | | } |
| 38 | | |
| 39 | | void bv_unset(BitVector *bv, int bit) |
| 40 | | { |
| 41 | | frt_u32 *word_p; |
| 42 | | int word = bit >> 5; |
| 43 | | frt_u32 bitmask = 1 << (bit & 31); |
| 44 | | |
| 45 | | /* Check to see if we need to grow the BitVector */ |
| 46 | | if (unlikely(bit >= bv->size)) { |
| 47 | | bv->size = bit + 1; /* size is max range of bits set */ |
| 48 | | if (word >= bv->capa) { |
| 49 | | int capa = bv->capa << 1; |
| 50 | | while (capa <= word) { |
| 51 | | capa <<= 1; |
| 52 | | } |
| 53 | | FRT_REALLOC_N(bv->bits, frt_u32, capa); |
| 54 | | memset(bv->bits + bv->capa, (bv->extends_as_ones ? 0xFF : 0), |
| 55 | | sizeof(frt_u32) * (capa - bv->capa)); |
| 56 | | bv->capa = capa; |
| 57 | | } |
| 58 | | } |
| 59 | | |
| 60 | | /* Set the required bit */ |
| 61 | | word_p = &(bv->bits[word]); |
| 62 | | if ((bitmask & *word_p) != 0) { |
| 63 | | bv->count--; /* update count */ |
| 64 | | *word_p &= ~bitmask; |
| 65 | | } |
| 66 | 37 | } |
| 67 | 38 | |