[llvm] r273326 - [Coverage] Clarify ownership of a MemoryBuffer in the reader (NFC)

Vedant Kumar via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 21 15:22:34 PDT 2016


Author: vedantk
Date: Tue Jun 21 17:22:33 2016
New Revision: 273326

URL: http://llvm.org/viewvc/llvm-project?rev=273326&view=rev
Log:
[Coverage] Clarify ownership of a MemoryBuffer in the reader (NFC)

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.

Modified:
    llvm/trunk/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
    llvm/trunk/lib/ProfileData/Coverage/CoverageMapping.cpp
    llvm/trunk/lib/ProfileData/Coverage/CoverageMappingReader.cpp

Modified: llvm/trunk/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ProfileData/Coverage/CoverageMappingReader.h?rev=273326&r1=273325&r2=273326&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ProfileData/Coverage/CoverageMappingReader.h (original)
+++ llvm/trunk/include/llvm/ProfileData/Coverage/CoverageMappingReader.h Tue Jun 21 17:22:33 2016
@@ -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;
 };

Modified: llvm/trunk/lib/ProfileData/Coverage/CoverageMapping.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ProfileData/Coverage/CoverageMapping.cpp?rev=273326&r1=273325&r2=273326&view=diff
==============================================================================
--- llvm/trunk/lib/ProfileData/Coverage/CoverageMapping.cpp (original)
+++ llvm/trunk/lib/ProfileData/Coverage/CoverageMapping.cpp Tue Jun 21 17:22:33 2016
@@ -236,11 +236,13 @@ CoverageMapping::load(CoverageMappingRea
 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());

Modified: llvm/trunk/lib/ProfileData/Coverage/CoverageMappingReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ProfileData/Coverage/CoverageMappingReader.cpp?rev=273326&r1=273325&r2=273326&view=diff
==============================================================================
--- llvm/trunk/lib/ProfileData/Coverage/CoverageMappingReader.cpp (original)
+++ llvm/trunk/lib/ProfileData/Coverage/CoverageMappingReader.cpp Tue Jun 21 17:22:33 2016
@@ -641,8 +641,7 @@ static Error loadBinaryFormat(MemoryBuff
 }
 
 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
   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);




More information about the llvm-commits mailing list