slydiman wrote:
LGTM,
but it is necessary to debug the test and make it more stable (it is still red).
I assumed that something is wrong with the first resize() because of capacity=0.
> I'm using the SmallVector for the resize_for_overwrite functionality
> (allocating memory without initializing it).
SmallVector.h:
```
/// Like resize, but \ref T is POD, the new values won't be initialized.
void resize_for_overwrite(size_type N) { resizeImpl<true>(N); }
template <bool ForOverwrite> void resizeImpl(size_type N) {
if (N == this->size())
return;
if (N < this->size()) {
this->truncate(N);
return;
}
this->reserve(N);
for (auto I = this->end(), E = this->begin() + N; I != E; ++I)
if (ForOverwrite)
new (&*I) T; // <<< We don't need it at all, especially for a large
size
else
new (&*I) T();
this->set_size(N);
}
```
Probably it is better to just allocate the own buffer once at the beginning and
do not resize anything.
https://github.com/llvm/llvm-project/pull/104193
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits