`OwningArrayRef` requires that the size and the capacity are the same. This prevents reusing memory allocations unless the size happens to be exactly the same (which is rare enough we don't even try). Switch to `SmallVector` instead so that we're not repeatedly calling `new[]` and `delete[]`.