{
Cell* abyte = Bits + i / BitsPerCell();
Cell amask = (Cell)( '\1' << ( i % BitsPerCell() ) );
- Cell anold = ( *abyte & amask );
- *abyte |= amask;
+ Cell anold = (Cell)( *abyte & amask );
+ *abyte = (Cell)( *abyte | amask );
return ! anold;
}
{
Cell* abyte = Bits + i / BitsPerCell();
Cell amask = (Cell)( '\1' << ( i % BitsPerCell() ) );
- return ( *abyte & amask );
+ return (Cell)( *abyte & amask );
}
//! Unset bit for i-th item; returns non-null if that bit
{
Cell* abyte = Bits + i / BitsPerCell();
Cell amask = (Cell)( '\1' << ( i % BitsPerCell() ) );
- Cell anold = ( *abyte & amask );
- *abyte &= ~amask;
+ Cell anold = (Cell)( *abyte & amask );
+ *abyte = (Cell)( *abyte & ~amask );
return anold;
}