[Object] Modify OwningBinary's interface to separate inspection from ownership.
[oota-llvm.git] / tools / llvm-symbolizer / LLVMSymbolize.h
index 52f1fc99171569e81689c1225d2f370cea19d618..db3f56237b47f65c8fada1e03aa494eec9fb8c95 100644 (file)
@@ -81,9 +81,12 @@ private:
   // Owns all the parsed binaries and object files.
   SmallVector<std::unique_ptr<Binary>, 4> ParsedBinariesAndObjects;
   SmallVector<std::unique_ptr<MemoryBuffer>, 4> MemoryBuffers;
-  void addOwningBinary(OwningBinary<Binary> Bin) {
-    ParsedBinariesAndObjects.push_back(std::move(Bin.getBinary()));
-    MemoryBuffers.push_back(std::move(Bin.getBuffer()));
+  void addOwningBinary(OwningBinary<Binary> OwningBin) {
+    std::unique_ptr<Binary> Bin;
+    std::unique_ptr<MemoryBuffer> MemBuf;
+    std::tie(Bin, MemBuf) = OwningBin.takeBinary();
+    ParsedBinariesAndObjects.push_back(std::move(Bin));
+    MemoryBuffers.push_back(std::move(MemBuf));
   }
 
   // Owns module info objects.