std: Make vec::push_all_move call reserve_at_least

vec::unshift uses this to add elements, scheduler queues use unshift,
and this was causing a lot of reallocation
This commit is contained in:
Brian Anderson 2013-08-17 23:11:46 -07:00
parent 44c88ddf42
commit 2690b51350

View file

@ -1401,7 +1401,7 @@ impl<T> OwnedVector<T> for ~[T] {
let self_len = self.len();
let rhs_len = rhs.len();
let new_len = self_len + rhs_len;
self.reserve(new_len);
self.reserve_at_least(new_len);
unsafe { // Note: infallible.
let self_p = vec::raw::to_mut_ptr(*self);
let rhs_p = vec::raw::to_ptr(rhs);