Update to the BitVector Implementation

IsBitSet:
- If the index requested is above the size, return false.

ClearBit:
- If the index requested is above the size, ignore.

Added SameBitsSet:
- Check the bits set disregarding size and expandable.

Intersect and Union:
- removed the requirement of same size.
- handles case where the sizes are not the same.

Added Subtract between BitVectors.

SetInitialBits:
- Now requests expansion if above the bits available.
- Clears upper bits.

Added GetHighestBitSet.

ClearBit:
- If we clear above the size, it is fine, it has not been set yet.

Copy:
- Supposes it is well allocated.
- It used to just copy what was available in destination without checking source's size.
- Now actually allocate the destination to make sure it holds enough space.
- Set parameter to const.

General:
- Moved sizeof(uint32_t) to sizeof(*storage_) for future maintenance.

Change-Id: Iebb214632482c46807deca957f5b6dc892a61a84
2 files changed