Make maxSize a private variable, add a size() accessor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4573 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2002-11-06 18:34:40 +00:00
parent d747e8ffe9
commit 45a9116e0a
2 changed files with 12 additions and 8 deletions

View File

@@ -41,6 +41,7 @@ class BitSetVector {
class iterator; class iterator;
std::vector<bitword> bitsetVec; std::vector<bitword> bitsetVec;
unsigned maxSize;
static unsigned NumWords(unsigned Size) { return (Size+WORDSIZE-1)/WORDSIZE;} static unsigned NumWords(unsigned Size) { return (Size+WORDSIZE-1)/WORDSIZE;}
@@ -53,14 +54,15 @@ class BitSetVector {
BitSetVector(); // do not implement! BitSetVector(); // do not implement!
public: public:
unsigned maxSize;
/// ///
/// Constructor: create a set of the maximum size maxSetSize. /// Constructor: create a set of the maximum size maxSetSize.
/// The set is initialized to empty. /// The set is initialized to empty.
/// ///
BitSetVector(unsigned maxSetSize) BitSetVector(unsigned maxSetSize)
: bitsetVec(BitSetVector::NumWords(maxSetSize)), maxSize(maxSetSize) { } : bitsetVec(NumWords(maxSetSize)), maxSize(maxSetSize) { }
/// size - Return the number of bits tracked by this bit vector...
unsigned size() const { return maxSize; }
/// ///
/// Modifier methods: reset, set for entire set, operator[] for one element. /// Modifier methods: reset, set for entire set, operator[] for one element.
@@ -229,7 +231,7 @@ inline std::ostream& operator<< (std::ostream& O, const BitSetVector& bset)
inline bool Disjoint(const BitSetVector& set1, inline bool Disjoint(const BitSetVector& set1,
const BitSetVector& set2) const BitSetVector& set2)
{ {
assert(set1.maxSize == set2.maxSize && "Illegal intersection"); assert(set1.size() == set2.size() && "Illegal intersection");
for (unsigned i = 0; i < set1.bitsetVec.size(); ++i) for (unsigned i = 0; i < set1.bitsetVec.size(); ++i)
if ((set1.getWord(i) & set2.getWord(i)).any()) if ((set1.getWord(i) & set2.getWord(i)).any())
return false; return false;

View File

@@ -41,6 +41,7 @@ class BitSetVector {
class iterator; class iterator;
std::vector<bitword> bitsetVec; std::vector<bitword> bitsetVec;
unsigned maxSize;
static unsigned NumWords(unsigned Size) { return (Size+WORDSIZE-1)/WORDSIZE;} static unsigned NumWords(unsigned Size) { return (Size+WORDSIZE-1)/WORDSIZE;}
@@ -53,14 +54,15 @@ class BitSetVector {
BitSetVector(); // do not implement! BitSetVector(); // do not implement!
public: public:
unsigned maxSize;
/// ///
/// Constructor: create a set of the maximum size maxSetSize. /// Constructor: create a set of the maximum size maxSetSize.
/// The set is initialized to empty. /// The set is initialized to empty.
/// ///
BitSetVector(unsigned maxSetSize) BitSetVector(unsigned maxSetSize)
: bitsetVec(BitSetVector::NumWords(maxSetSize)), maxSize(maxSetSize) { } : bitsetVec(NumWords(maxSetSize)), maxSize(maxSetSize) { }
/// size - Return the number of bits tracked by this bit vector...
unsigned size() const { return maxSize; }
/// ///
/// Modifier methods: reset, set for entire set, operator[] for one element. /// Modifier methods: reset, set for entire set, operator[] for one element.
@@ -229,7 +231,7 @@ inline std::ostream& operator<< (std::ostream& O, const BitSetVector& bset)
inline bool Disjoint(const BitSetVector& set1, inline bool Disjoint(const BitSetVector& set1,
const BitSetVector& set2) const BitSetVector& set2)
{ {
assert(set1.maxSize == set2.maxSize && "Illegal intersection"); assert(set1.size() == set2.size() && "Illegal intersection");
for (unsigned i = 0; i < set1.bitsetVec.size(); ++i) for (unsigned i = 0; i < set1.bitsetVec.size(); ++i)
if ((set1.getWord(i) & set2.getWord(i)).any()) if ((set1.getWord(i) & set2.getWord(i)).any())
return false; return false;