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
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to