bitarray.cc #1

  • //
  • guest/
  • Newtopian/
  • p4/
  • 2014.1/
  • support/
  • bitarray.cc
  • View
  • Commits
  • Open Download .zip Download (828 B)
# include <stdhdrs.h>

# include "bitarray.h"

#define NBW (8 * sizeof(BitArray::BitBlock))
#define MASK (NBW-1)

BitArray::BitArray( BitArray::Index nBits )
    : w(new BitBlock[1+nBits/NBW])
{
    BitBlock *s, *e;
    e = w + 1+nBits/NBW;
    for (s = w; s < e; ++s)
	*s = 0;
}

int
BitArray::operator []( BitArray::Index p ) const
{
    BitBlock *bp = w + (p / NBW);
    return ((((BitBlock)1) << (p & MASK)) & *bp) != 0;
}

int
BitArray::tas( BitArray::Index p )
{
    BitBlock *bp = w + (p / NBW);
    BitBlock bit = (((BitBlock)1) << (p & MASK));
    if ((bit & *bp) != 0)
	return 1;
    *bp |= bit;
    return 0;
}

int
BitArray::clear( BitArray::Index p )
{
    BitBlock *bp = w + (p / NBW);
    BitBlock bit = (((BitBlock)1) << (p & MASK));
    int ret;
    ret = ((bit & *bp) != 0);
    *bp &= ~bit;
    return ret;
}
# Change User Description Committed
#1 14945 Newtopian Merging

//guest/perforce_software/p4/...

to //guest/Newtopian/p4/...
//guest/perforce_software/p4/2014.1/support/bitarray.cc
#1 12188 Matt Attaway Move 'main' p4 into a release specific directory in prep for new releases
//guest/perforce_software/p4/support/bitarray.cc
#1 9129 Matt Attaway Initial commit of the 2014.1 p4/p4api source code