diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2007-10-07 04:47:57 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@dberlin.org> | 2007-10-07 04:47:57 +0000 |
commit | 2dee9cea795d6fa99a5674d35871da55788090df (patch) | |
tree | d80259770788f1fdf62b233b2cdcc3c490cfbd98 /include | |
parent | 0a38ee31bfb08104eb6fc763b67ded44b01266f8 (diff) | |
download | external_llvm-2dee9cea795d6fa99a5674d35871da55788090df.zip external_llvm-2dee9cea795d6fa99a5674d35871da55788090df.tar.gz external_llvm-2dee9cea795d6fa99a5674d35871da55788090df.tar.bz2 |
Some more problems noticed by Curtis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42717 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/ADT/SparseBitVector.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/include/llvm/ADT/SparseBitVector.h b/include/llvm/ADT/SparseBitVector.h index 86fb2b4..4e5e781 100644 --- a/include/llvm/ADT/SparseBitVector.h +++ b/include/llvm/ADT/SparseBitVector.h @@ -648,8 +648,8 @@ public: ElementListIter Iter1 = Elements.begin(); ElementListConstIter Iter2 = RHS.Elements.begin(); - // Check if they are both empty - if (Elements.empty() && RHS.Elements.empty()) + // If either our bitmap or RHS is empty, we are done + if (Elements.empty() || RHS.Elements.empty()) return false; // Loop through, intersecting as we go, erasing elements when necessary. @@ -692,8 +692,9 @@ public: ElementListConstIter Iter1 = RHS1.Elements.begin(); ElementListConstIter Iter2 = RHS2.Elements.begin(); - // Check if they are both empty. - if (RHS1.empty() && RHS2.empty()) + // If RHS1 is empty, we are done + // If RHS2 is empty, we still have to copy RHS1 + if (RHS1.Elements.empty()) return; // Loop through, intersecting as we go, erasing elements when necessary. @@ -716,6 +717,9 @@ public: ++Iter1; ++Iter2; } else { + SparseBitVectorElement<ElementSize> *NewElement = + new SparseBitVectorElement<ElementSize>(*Iter1); + Elements.push_back(NewElement); ++Iter1; } } |