Chromium Code Reviews| Index: src/list-inl.h |
| diff --git a/src/list-inl.h b/src/list-inl.h |
| index 60e8fab6f6fb5196aa6c500e0fd3d7dfd948505a..7cc81f3846e354d73f4cffb4588ed5872d08f12a 100644 |
| --- a/src/list-inl.h |
| +++ b/src/list-inl.h |
| @@ -33,8 +33,10 @@ template<typename T, class P> |
| void List<T, P>::AddAll(const Vector<T>& other, P alloc) { |
| int result_length = length_ + other.length(); |
| if (capacity_ < result_length) Resize(result_length, alloc); |
| - for (int i = 0; i < other.length(); i++) { |
| - data_[length_ + i] = other.at(i); |
| + if (std::is_fundamental<T>::value) { |
|
Sven Panne
2014/10/24 08:04:00
std:is_fundamental is a C++11 header feature, so w
|
| + memcpy(data_ + length_, other.start(), sizeof(*data_) * other.length()); |
| + } else { |
| + for (int i = 0; i < other.length(); i++) data_[length_ + i] = other.at(i); |
| } |
| length_ = result_length; |
| } |