]> granicus.if.org Git - llvm/commitdiff
[Coverage] Clarify ownership of a MemoryBuffer in the reader (NFC)
authorVedant Kumar <vsk@apple.com>
Tue, 21 Jun 2016 22:22:33 +0000 (22:22 +0000)
committerVedant Kumar <vsk@apple.com>
Tue, 21 Jun 2016 22:22:33 +0000 (22:22 +0000)
Pass a `MemoryBuffer &` to BinaryCoverageReader::create() instead of a
`std::unique_ptr<MemoryBuffer> &`. This makes it easier to reason about
the ownership of the buffer at a glance.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273326 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ProfileData/Coverage/CoverageMappingReader.h
lib/ProfileData/Coverage/CoverageMapping.cpp
lib/ProfileData/Coverage/CoverageMappingReader.cpp

index db907f128d931e5edb7211cbed5ee2b43d1b856e..daa16d35c37c459bc9b7bc4989eac6107ce648d6 100644 (file)
@@ -181,8 +181,7 @@ private:
 
 public:
   static Expected<std::unique_ptr<BinaryCoverageReader>>
-  create(std::unique_ptr<MemoryBuffer> &ObjectBuffer,
-         StringRef Arch);
+  create(MemoryBuffer &ObjectBuffer, StringRef Arch);
 
   Error readNextRecord(CoverageMappingRecord &Record) override;
 };
index 2d833204c919c8edd95cf3d68c705f0f1e176ea4..ac3fe4635fb2686e5e3a343d944dbfdeb1ff1edd 100644 (file)
@@ -236,11 +236,13 @@ CoverageMapping::load(CoverageMappingReader &CoverageReader,
 Expected<std::unique_ptr<CoverageMapping>>
 CoverageMapping::load(StringRef ObjectFilename, StringRef ProfileFilename,
                       StringRef Arch) {
-  auto CounterMappingBuff = MemoryBuffer::getFileOrSTDIN(ObjectFilename);
-  if (std::error_code EC = CounterMappingBuff.getError())
+  auto CounterMappingBufOrErr = MemoryBuffer::getFileOrSTDIN(ObjectFilename);
+  if (std::error_code EC = CounterMappingBufOrErr.getError())
     return errorCodeToError(EC);
+  std::unique_ptr<MemoryBuffer> ObjectBuffer =
+      std::move(CounterMappingBufOrErr.get());
   auto CoverageReaderOrErr =
-      BinaryCoverageReader::create(CounterMappingBuff.get(), Arch);
+      BinaryCoverageReader::create(*ObjectBuffer.get(), Arch);
   if (Error E = CoverageReaderOrErr.takeError())
     return std::move(E);
   auto CoverageReader = std::move(CoverageReaderOrErr.get());
index 1a4b4f59084106b8523e4dc5ad1a1e4f83d022ac..1230054267fc5befd60b73e7829c7518bf879afd 100644 (file)
@@ -641,8 +641,7 @@ static Error loadBinaryFormat(MemoryBufferRef ObjectBuffer,
 }
 
 Expected<std::unique_ptr<BinaryCoverageReader>>
-BinaryCoverageReader::create(std::unique_ptr<MemoryBuffer> &ObjectBuffer,
-                             StringRef Arch) {
+BinaryCoverageReader::create(MemoryBuffer &ObjectBuffer, StringRef Arch) {
   std::unique_ptr<BinaryCoverageReader> Reader(new BinaryCoverageReader());
 
   StringRef Coverage;
@@ -650,12 +649,12 @@ BinaryCoverageReader::create(std::unique_ptr<MemoryBuffer> &ObjectBuffer,
   support::endianness Endian;
   Error E;
   consumeError(std::move(E));
-  if (ObjectBuffer->getBuffer().startswith(TestingFormatMagic))
+  if (ObjectBuffer.getBuffer().startswith(TestingFormatMagic))
     // This is a special format used for testing.
-    E = loadTestingFormat(ObjectBuffer->getBuffer(), Reader->ProfileNames,
+    E = loadTestingFormat(ObjectBuffer.getBuffer(), Reader->ProfileNames,
                           Coverage, BytesInAddress, Endian);
   else
-    E = loadBinaryFormat(ObjectBuffer->getMemBufferRef(), Reader->ProfileNames,
+    E = loadBinaryFormat(ObjectBuffer.getMemBufferRef(), Reader->ProfileNames,
                          Coverage, BytesInAddress, Endian, Arch);
   if (E)
     return std::move(E);