aboutsummaryrefslogtreecommitdiff
path: root/libsanitizer/tsan/tsan_vector.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsanitizer/tsan/tsan_vector.h')
-rw-r--r--libsanitizer/tsan/tsan_vector.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/libsanitizer/tsan/tsan_vector.h b/libsanitizer/tsan/tsan_vector.h
index f65ad2b5560..c0485513ee2 100644
--- a/libsanitizer/tsan/tsan_vector.h
+++ b/libsanitizer/tsan/tsan_vector.h
@@ -76,6 +76,10 @@ class Vector {
}
void Resize(uptr size) {
+ if (size == 0) {
+ end_ = begin_;
+ return;
+ }
uptr old_size = Size();
EnsureSize(size);
if (old_size < size) {
@@ -98,7 +102,7 @@ class Vector {
return;
}
uptr cap0 = last_ - begin_;
- uptr cap = 2 * cap0;
+ uptr cap = cap0 * 5 / 4; // 25% growth
if (cap == 0)
cap = 16;
if (cap < size)