diff options
| author | Guillaume Boisseau <Nadrieril@users.noreply.github.com> | 2024-03-09 21:40:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-09 21:40:06 +0100 |
| commit | e3c0158788dffbd62c3e7f69ac61e5f03ad614c6 (patch) | |
| tree | 49764503764d108892743736e6d95108a39b0989 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | |
| parent | 5b6d30a4a9cff36380504716c992c4f5847c4342 (diff) | |
| parent | 784e6a1e080e5ba18e5c246e744e2d20525d1c3d (diff) | |
| download | rust-e3c0158788dffbd62c3e7f69ac61e5f03ad614c6.tar.gz rust-e3c0158788dffbd62c3e7f69ac61e5f03ad614c6.zip | |
Rollup merge of #120504 - kornelski:try_with_capacity, r=Amanieu
Vec::try_with_capacity Related to #91913 Implements try_with_capacity for `Vec`, `VecDeque`, and `String`. I can follow it up with more collections if desired. `Vec::try_with_capacity()` is functionally equivalent to the current stable: ```rust let mut v = Vec::new(); v.try_reserve_exact(n)? ``` However, `try_reserve` calls non-inlined `finish_grow`, which requires old and new `Layout`, and is designed to reallocate memory. There is benefit to using `try_with_capacity`, besides syntax convenience, because it generates much smaller code at the call site with a direct call to the allocator. There's codegen test included. It's also a very desirable functionality for users of `no_global_oom_handling` (Rust-for-Linux), since it makes a very commonly used function available in that environment (`with_capacity` is used much more frequently than all `(try_)reserve(_exact)`).
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
