[Orc] Make OrcMCJITReplacement::addObject calls transfer buffer ownership to the
[oota-llvm.git] / lib / ExecutionEngine / Orc / OrcMCJITReplacement.h
index 838f5dce97f50f75f4d0ab70af2542219ea198ea..ddbc73251c7eee4c83224fe84600f9b3b32df551 100644 (file)
@@ -154,8 +154,13 @@ public:
     std::tie(Obj, Buf) = O.takeBinary();
     std::vector<std::unique_ptr<object::ObjectFile>> Objs;
     Objs.push_back(std::move(Obj));
-    ObjectLayer.addObjectSet(std::move(Objs),
-                             llvm::make_unique<ForwardingRTDyldMM>(*this));
+    auto H =
+      ObjectLayer.addObjectSet(std::move(Objs),
+                               llvm::make_unique<ForwardingRTDyldMM>(*this));
+
+    std::vector<std::unique_ptr<MemoryBuffer>> Bufs;
+    Bufs.push_back(std::move(Buf));
+    ObjectLayer.takeOwnershipOfBuffers(H, std::move(Bufs));
   }
 
   void addArchive(object::OwningBinary<object::Archive> A) override {