Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: mojo/public/cpp/bindings/lib/array_internal.h

Issue 1535943002: Convert Pass()→std::move() in //mojo/public/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Regenerate correctly Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_INTERNAL_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_INTERNAL_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_INTERNAL_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_INTERNAL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10
11 #include <new> 10 #include <new>
11 #include <utility>
12 #include <vector> 12 #include <vector>
13 13
14 #include "mojo/public/c/system/macros.h" 14 #include "mojo/public/c/system/macros.h"
15 #include "mojo/public/cpp/bindings/lib/bindings_internal.h" 15 #include "mojo/public/cpp/bindings/lib/bindings_internal.h"
16 #include "mojo/public/cpp/bindings/lib/bindings_serialization.h" 16 #include "mojo/public/cpp/bindings/lib/bindings_serialization.h"
17 #include "mojo/public/cpp/bindings/lib/bounds_checker.h" 17 #include "mojo/public/cpp/bindings/lib/bounds_checker.h"
18 #include "mojo/public/cpp/bindings/lib/buffer.h" 18 #include "mojo/public/cpp/bindings/lib/buffer.h"
19 #include "mojo/public/cpp/bindings/lib/map_data_internal.h" 19 #include "mojo/public/cpp/bindings/lib/map_data_internal.h"
20 #include "mojo/public/cpp/bindings/lib/template_util.h" 20 #include "mojo/public/cpp/bindings/lib/template_util.h"
21 #include "mojo/public/cpp/bindings/lib/validate_params.h" 21 #include "mojo/public/cpp/bindings/lib/validate_params.h"
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 size_t old_size = vec->size(); 498 size_t old_size = vec->size();
499 for (size_t i = size; i < old_size; i++) 499 for (size_t i = size; i < old_size; i++)
500 reinterpret_cast<T*>(vec->at(i).buf)->~T(); 500 reinterpret_cast<T*>(vec->at(i).buf)->~T();
501 ResizeStorage(vec, size); 501 ResizeStorage(vec, size);
502 for (size_t i = old_size; i < vec->size(); i++) 502 for (size_t i = old_size; i < vec->size(); i++)
503 new (vec->at(i).buf) T(); 503 new (vec->at(i).buf) T();
504 } 504 }
505 static inline void PushBack(std::vector<StorageType>* vec, RefType value) { 505 static inline void PushBack(std::vector<StorageType>* vec, RefType value) {
506 size_t old_size = vec->size(); 506 size_t old_size = vec->size();
507 ResizeStorage(vec, old_size + 1); 507 ResizeStorage(vec, old_size + 1);
508 new (vec->at(old_size).buf) T(value.Pass()); 508 new (vec->at(old_size).buf) T(std::move(value));
509 } 509 }
510 static inline void ResizeStorage(std::vector<StorageType>* vec, size_t size) { 510 static inline void ResizeStorage(std::vector<StorageType>* vec, size_t size) {
511 if (size <= vec->capacity()) { 511 if (size <= vec->capacity()) {
512 vec->resize(size); 512 vec->resize(size);
513 return; 513 return;
514 } 514 }
515 std::vector<StorageType> new_storage(size); 515 std::vector<StorageType> new_storage(size);
516 for (size_t i = 0; i < vec->size(); i++) 516 for (size_t i = 0; i < vec->size(); i++)
517 new (new_storage.at(i).buf) T(at(vec, i).Pass()); 517 new (new_storage.at(i).buf) T(std::move(at(vec, i)));
518 vec->swap(new_storage); 518 vec->swap(new_storage);
519 Finalize(&new_storage); 519 Finalize(&new_storage);
520 } 520 }
521 static inline void Clone(const std::vector<StorageType>& src_vec, 521 static inline void Clone(const std::vector<StorageType>& src_vec,
522 std::vector<StorageType>* dest_vec) { 522 std::vector<StorageType>* dest_vec) {
523 Resize(dest_vec, src_vec.size()); 523 Resize(dest_vec, src_vec.size());
524 for (size_t i = 0; i < src_vec.size(); ++i) 524 for (size_t i = 0; i < src_vec.size(); ++i)
525 at(dest_vec, i) = at(&src_vec, i).Clone(); 525 at(dest_vec, i) = at(&src_vec, i).Clone();
526 } 526 }
527 }; 527 };
528 528
529 template <> 529 template <>
530 struct WrapperTraits<String, false> { 530 struct WrapperTraits<String, false> {
531 typedef String_Data* DataType; 531 typedef String_Data* DataType;
532 }; 532 };
533 533
534 } // namespace internal 534 } // namespace internal
535 } // namespace mojo 535 } // namespace mojo
536 536
537 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_INTERNAL_H_ 537 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_INTERNAL_H_
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/interface_request.h ('k') | mojo/public/cpp/bindings/lib/array_serialization.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698