Fix typeo. grow() cannot shrink storage. clear() should really nuke storage

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11865 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2004-02-26 04:07:12 +00:00
parent af6926a382
commit 00fa65be83
3 changed files with 15 additions and 9 deletions

View File

@ -9,7 +9,7 @@
// //
// This file implements a dense map. A dense map template takes two // This file implements a dense map. A dense map template takes two
// types. The first is the mapped type and the second is a functor // types. The first is the mapped type and the second is a functor
// that maps its argument to a size_t. On instanciation a "null" value // that maps its argument to a size_t. On instantiation a "null" value
// can be provided to be used as a "does not exist" indicator in the // can be provided to be used as a "does not exist" indicator in the
// map. A member function grow() is provided that given the value of // map. A member function grow() is provided that given the value of
// the maximally indexed key (the argument of the functor) makes sure // the maximally indexed key (the argument of the functor) makes sure
@ -48,11 +48,13 @@ public:
} }
void clear() { void clear() {
storage_.assign(storage_.size(), nullVal_); storage_.clear();
} }
void grow(IndexT n) { void grow(IndexT n) {
storage_.resize(toIndex_(n) + 1, nullVal_); unsigned NewSize = toIndex_(n) + 1;
if (NewSize > storage_.size())
storage_.resize(NewSize, nullVal_);
} }
}; };

View File

@ -9,7 +9,7 @@
// //
// This file implements a dense map. A dense map template takes two // This file implements a dense map. A dense map template takes two
// types. The first is the mapped type and the second is a functor // types. The first is the mapped type and the second is a functor
// that maps its argument to a size_t. On instanciation a "null" value // that maps its argument to a size_t. On instantiation a "null" value
// can be provided to be used as a "does not exist" indicator in the // can be provided to be used as a "does not exist" indicator in the
// map. A member function grow() is provided that given the value of // map. A member function grow() is provided that given the value of
// the maximally indexed key (the argument of the functor) makes sure // the maximally indexed key (the argument of the functor) makes sure
@ -48,11 +48,13 @@ public:
} }
void clear() { void clear() {
storage_.assign(storage_.size(), nullVal_); storage_.clear();
} }
void grow(IndexT n) { void grow(IndexT n) {
storage_.resize(toIndex_(n) + 1, nullVal_); unsigned NewSize = toIndex_(n) + 1;
if (NewSize > storage_.size())
storage_.resize(NewSize, nullVal_);
} }
}; };

View File

@ -9,7 +9,7 @@
// //
// This file implements a dense map. A dense map template takes two // This file implements a dense map. A dense map template takes two
// types. The first is the mapped type and the second is a functor // types. The first is the mapped type and the second is a functor
// that maps its argument to a size_t. On instanciation a "null" value // that maps its argument to a size_t. On instantiation a "null" value
// can be provided to be used as a "does not exist" indicator in the // can be provided to be used as a "does not exist" indicator in the
// map. A member function grow() is provided that given the value of // map. A member function grow() is provided that given the value of
// the maximally indexed key (the argument of the functor) makes sure // the maximally indexed key (the argument of the functor) makes sure
@ -48,11 +48,13 @@ public:
} }
void clear() { void clear() {
storage_.assign(storage_.size(), nullVal_); storage_.clear();
} }
void grow(IndexT n) { void grow(IndexT n) {
storage_.resize(toIndex_(n) + 1, nullVal_); unsigned NewSize = toIndex_(n) + 1;
if (NewSize > storage_.size())
storage_.resize(NewSize, nullVal_);
} }
}; };