Eliminate a redundent ctor; eliminate one more potential new [0].
authorEvan Cheng <evan.cheng@apple.com>
Thu, 15 Feb 2007 19:05:25 +0000 (19:05 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 15 Feb 2007 19:05:25 +0000 (19:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34313 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/BitVector.h

index 94cbf0962140df93d1891dacacfc24eb5eba34d6..a6ae1ac80d5027fc6aa54b413feab588402b3584 100644 (file)
@@ -72,25 +72,23 @@ public:
     Bits = NULL;
   }
 
-  /// BitVector ctor - Creates a bitvector of specified number of bits. All
-  /// bits are initialized to false;
-  BitVector(unsigned s) : Size(s) {
-    Capacity = NumBitWords(s);
-    Bits = new BitWord[Capacity];
-    init_words(Bits, Capacity, false);
-  }
-
   /// BitVector ctor - Creates a bitvector of specified number of bits. All
   /// bits are initialized to the specified value.
-  BitVector(unsigned s, bool t) : Size(s) {
+  explicit BitVector(unsigned s, bool t = false) : Size(s) {
     Capacity = NumBitWords(s);
     Bits = new BitWord[Capacity];
     init_words(Bits, Capacity, t);
-    clear_unused_bits();
+    if (t)
+      clear_unused_bits();
   }
 
   /// BitVector copy ctor.
   BitVector(const BitVector &RHS) : Size(RHS.size()) {
+    if (Size == 0) {
+      Bits = NULL;
+      return;
+    }
+
     Capacity = NumBitWords(RHS.size());
     Bits = new BitWord[Capacity];
     std::copy(RHS.Bits, &RHS.Bits[Capacity], Bits);