[ELF] Write whole std::vector using a single `memcpy` call
authorSimon Atanasyan <simon@atanasyan.com>
Tue, 14 Apr 2015 18:53:14 +0000 (18:53 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Tue, 14 Apr 2015 18:53:14 +0000 (18:53 +0000)
We do not need to iterate over `_buckets` and `_chains` vectors and
write all elements one by one.

No functional changes.

llvm-svn: 234927

lld/lib/ReaderWriter/ELF/SectionChunks.h

index 5112b24..ff3a464 100644 (file)
@@ -1414,17 +1414,10 @@ public:
     std::memcpy(dest, bucketChainCounts, sizeof(bucketChainCounts));
     dest += sizeof(bucketChainCounts);
     // write bucket values
-    for (auto bi : _buckets) {
-      uint32_t val = (bi);
-      std::memcpy(dest, &val, sizeof(uint32_t));
-      dest += sizeof(uint32_t);
-    }
+    std::memcpy(dest, _buckets.data(), _buckets.size() * sizeof(uint32_t));
+    dest += _buckets.size() * sizeof(uint32_t);
     // write chain values
-    for (auto ci : _chains) {
-      uint32_t val = (ci);
-      std::memcpy(dest, &val, sizeof(uint32_t));
-      dest += sizeof(uint32_t);
-    }
+    std::memcpy(dest, _chains.data(), _chains.size() * sizeof(uint32_t));
   }
 
 private: