diff options
Diffstat (limited to 'lib/sanitizer_common/sanitizer_common.h')
-rw-r--r-- | lib/sanitizer_common/sanitizer_common.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/sanitizer_common/sanitizer_common.h b/lib/sanitizer_common/sanitizer_common.h index 58bda6149..4e79a9990 100644 --- a/lib/sanitizer_common/sanitizer_common.h +++ b/lib/sanitizer_common/sanitizer_common.h @@ -482,6 +482,10 @@ class InternalMmapVectorNoCtor { uptr capacity() const { return capacity_; } + void reserve(uptr new_size) { + if (new_size >= size()) return; + Resize(new_size); + } void resize(uptr new_size) { Resize(new_size); if (new_size > size_) { @@ -527,9 +531,7 @@ class InternalMmapVectorNoCtor { template<typename T> class InternalMmapVector : public InternalMmapVectorNoCtor<T> { public: - explicit InternalMmapVector(uptr initial_capacity) { - InternalMmapVectorNoCtor<T>::Initialize(initial_capacity); - } + InternalMmapVector() { InternalMmapVectorNoCtor<T>::Initialize(1); } ~InternalMmapVector() { InternalMmapVectorNoCtor<T>::Destroy(); } // Disallow copies and moves. InternalMmapVector(const InternalMmapVector &) = delete; @@ -545,7 +547,7 @@ class InternalMmapVector : public InternalMmapVectorNoCtor<T> { template <typename T> class InternalScopedBuffer : public InternalMmapVector<T> { public: - explicit InternalScopedBuffer(uptr cnt) : InternalMmapVector<T>(cnt) { + explicit InternalScopedBuffer(uptr cnt) : InternalMmapVector<T>() { this->resize(cnt); } }; |