Use std::vector::insert() instead of std::copy() 86/281786/1
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 22 Sep 2022 02:28:12 +0000 (02:28 +0000)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 22 Sep 2022 02:28:12 +0000 (02:28 +0000)
To improve the performance of the parcel instance creation, the parcel
uses std::vector::insert().

Change-Id: Ia5c293373b57a2f75629b4a681458535af29cf6c
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
parcel/parcel.cc

index e55b812..2c3e13f 100644 (file)
@@ -32,7 +32,7 @@ Parcel::Impl::~Impl() = default;
 
 void Parcel::Impl::Write(const void* buf, uint32_t size) {
   auto* p = reinterpret_cast<const uint8_t*>(buf);
-  std::copy(p, p + size, std::back_inserter(data_));
+  data_.insert(data_.end(), p, p + size);
 }
 
 int Parcel::Impl::Read(void* buf, uint32_t size) {
@@ -75,14 +75,13 @@ void Parcel::Impl::WriteSize(uint32_t size) {
   if (IsBigEndian())
     size = GUINT32_TO_BE(size);
 
-  auto* p = reinterpret_cast<uint8_t*>(&size);
-  std::copy(p, p + sizeof(size), std::back_inserter(data_));
+  Write<uint32_t>(size);
 }
 
 template <typename T>
 void Parcel::Impl::Write(T d) {
   auto* p = reinterpret_cast<uint8_t*>(&d);
-  std::copy(p, p + sizeof(T), std::back_inserter(data_));
+  data_.insert(data_.end(), p, p + sizeof(T));
 }
 
 int Parcel::Impl::ReadSize(uint32_t* size) {
@@ -135,16 +134,14 @@ Parcel::~Parcel() = default;
 Parcel::Parcel(const Parcel& p)
   : impl_(new Impl(this)) {
   impl_->big_endian_ = p.impl_->big_endian_;
-  std::copy(p.impl_->data_.begin(), p.impl_->data_.end(),
-      std::back_inserter(impl_->data_));
+  impl_->data_ = p.impl_->data_;
   impl_->reader_ = p.impl_->reader_;
 }
 
 Parcel& Parcel::operator = (const Parcel& p) {
   if (this != &p) {
     impl_->big_endian_ = p.impl_->big_endian_;
-    std::copy(p.impl_->data_.begin(), p.impl_->data_.end(),
-        std::back_inserter(impl_->data_));
+    impl_->data_ = p.impl_->data_;
     impl_->reader_ = p.impl_->reader_;
   }
   return *this;