Update MCSymbolizer and its subclasses' constructors to reflect the fact that
authorLang Hames <lhames@gmail.com>
Thu, 27 Mar 2014 02:39:01 +0000 (02:39 +0000)
committerLang Hames <lhames@gmail.com>
Thu, 27 Mar 2014 02:39:01 +0000 (02:39 +0000)
they take ownership of the RelocationInfo they're constructed with.

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

include/llvm/MC/MCExternalSymbolizer.h
include/llvm/MC/MCObjectSymbolizer.h
include/llvm/MC/MCSymbolizer.h
lib/MC/MCDisassembler.cpp
lib/MC/MCExternalSymbolizer.cpp
lib/MC/MCObjectSymbolizer.cpp
lib/MC/MCSymbolizer.cpp
tools/llvm-objdump/llvm-objdump.cpp

index 02f9230f2072c35d4ccae78d39d211c58998dbbd..cab915234f39dbc713b0870e0254556baec5b5c7 100644 (file)
@@ -39,11 +39,11 @@ class MCExternalSymbolizer : public MCSymbolizer {
 
 public:
   MCExternalSymbolizer(MCContext &Ctx,
-                       std::unique_ptr<MCRelocationInfo> &RelInfo,
+                       std::unique_ptr<MCRelocationInfo> RelInfo,
                        LLVMOpInfoCallback getOpInfo,
                        LLVMSymbolLookupCallback symbolLookUp, void *disInfo)
-      : MCSymbolizer(Ctx, RelInfo), GetOpInfo(getOpInfo),
-        SymbolLookUp(symbolLookUp), DisInfo(disInfo) {}
+    : MCSymbolizer(Ctx, std::move(RelInfo)), GetOpInfo(getOpInfo),
+      SymbolLookUp(symbolLookUp), DisInfo(disInfo) {}
 
   bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &CommentStream,
                                 int64_t Value, uint64_t Address, bool IsBranch,
index 099713d41e68bcba6a7bad681ae3412683e653ff..f75b7f58a141fd9fc842cbe0c31c1e351bfd9053 100644 (file)
@@ -41,7 +41,7 @@ protected:
   const object::RelocationRef *findRelocationAt(uint64_t Addr);
   const object::SectionRef *findSectionContaining(uint64_t Addr);
 
-  MCObjectSymbolizer(MCContext &Ctx, std::unique_ptr<MCRelocationInfo> &RelInfo,
+  MCObjectSymbolizer(MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo,
                      const object::ObjectFile *Obj);
 
 public:
@@ -65,7 +65,7 @@ public:
   /// \brief Create an object symbolizer for \p Obj.
   static MCObjectSymbolizer *
   createObjectSymbolizer(MCContext &Ctx,
-                         std::unique_ptr<MCRelocationInfo> &RelInfo,
+                         std::unique_ptr<MCRelocationInfo> RelInfo,
                          const object::ObjectFile *Obj);
 
 private:
index 954e9ce416309a335a5c6909e5349080385f57de..4f4ab79d4620acf467c00eea5eb864e71fda2be3 100644 (file)
@@ -46,7 +46,7 @@ protected:
 
 public:
   /// \brief Construct an MCSymbolizer, taking ownership of \p RelInfo.
-  MCSymbolizer(MCContext &Ctx, std::unique_ptr<MCRelocationInfo> &RelInfo);
+  MCSymbolizer(MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo);
   virtual ~MCSymbolizer();
 
   /// \brief Try to add a symbolic operand instead of \p Value to the MCInst.
index 18f0f2f0b2bcfd16ad575c99bd3cc24f1fe86d1d..af426e2d0194cfd23322122746cd26009978288a 100644 (file)
@@ -25,8 +25,9 @@ void MCDisassembler::setupForSymbolicDisassembly(
   this->Ctx = Ctx;
   assert(Ctx != 0 && "No MCContext given for symbolic disassembly");
   if (!Symbolizer)
-    Symbolizer.reset(new MCExternalSymbolizer(*Ctx, RelInfo, GetOpInfo,
-                                              SymbolLookUp, DisInfo));
+    Symbolizer.reset(new MCExternalSymbolizer(*Ctx, std::move(RelInfo),
+                                              GetOpInfo, SymbolLookUp,
+                                              DisInfo));
 }
 
 void MCDisassembler::setupForSymbolicDisassembly(
index 660a11c274247af495a21f6a03d6c17fca8428ad..839516e25322ace9c1101f33b013a7d6b40906ea 100644 (file)
@@ -191,8 +191,8 @@ MCSymbolizer *createMCSymbolizer(StringRef TT, LLVMOpInfoCallback GetOpInfo,
                                  MCRelocationInfo *RelInfo) {
   assert(Ctx != 0 && "No MCContext given for symbolic disassembly");
 
-  std::unique_ptr<MCRelocationInfo> RelInfoOwingPtr(RelInfo);
-  return new MCExternalSymbolizer(*Ctx, RelInfoOwingPtr, GetOpInfo,
-                                  SymbolLookUp, DisInfo);
+  return new MCExternalSymbolizer(*Ctx,
+                                  std::unique_ptr<MCRelocationInfo>(RelInfo),
+                                  GetOpInfo, SymbolLookUp, DisInfo);
 }
 }
index dc1253d6292b97a4d8d809bb42e94355db438d06..ba80d15653273435a0eadcfa5b7170cbaffb4a04 100644 (file)
@@ -35,7 +35,7 @@ class MCMachObjectSymbolizer : public MCObjectSymbolizer {
 
 public:
   MCMachObjectSymbolizer(MCContext &Ctx,
-                         std::unique_ptr<MCRelocationInfo> &RelInfo,
+                         std::unique_ptr<MCRelocationInfo> RelInfo,
                          const MachOObjectFile *MOOF);
 
   StringRef findExternalFunctionAt(uint64_t Addr) override;
@@ -46,10 +46,10 @@ public:
 } // End unnamed namespace
 
 MCMachObjectSymbolizer::MCMachObjectSymbolizer(
-    MCContext &Ctx, std::unique_ptr<MCRelocationInfo> &RelInfo,
+    MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo,
     const MachOObjectFile *MOOF)
-    : MCObjectSymbolizer(Ctx, RelInfo, MOOF), MOOF(MOOF), StubsStart(0),
-      StubsCount(0), StubSize(0), StubsIndSymIndex(0) {
+  : MCObjectSymbolizer(Ctx, std::move(RelInfo), MOOF), MOOF(MOOF),
+    StubsStart(0), StubsCount(0), StubSize(0), StubsIndSymIndex(0) {
 
   for (const SectionRef &Section : MOOF->sections()) {
     StringRef Name;
@@ -121,9 +121,10 @@ tryAddingPcLoadReferenceComment(raw_ostream &cStream, int64_t Value,
 //===- MCObjectSymbolizer -------------------------------------------------===//
 
 MCObjectSymbolizer::MCObjectSymbolizer(
-    MCContext &Ctx, std::unique_ptr<MCRelocationInfo> &RelInfo,
-    const ObjectFile *Obj)
-    : MCSymbolizer(Ctx, RelInfo), Obj(Obj), SortedSections(), AddrToReloc() {}
+  MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo,
+  const ObjectFile *Obj)
+  : MCSymbolizer(Ctx, std::move(RelInfo)), Obj(Obj), SortedSections(),
+    AddrToReloc() {}
 
 bool MCObjectSymbolizer::
 tryAddingSymbolicOperand(MCInst &MI, raw_ostream &cStream,
@@ -191,11 +192,11 @@ StringRef MCObjectSymbolizer::findExternalFunctionAt(uint64_t Addr) {
 }
 
 MCObjectSymbolizer *MCObjectSymbolizer::createObjectSymbolizer(
-    MCContext &Ctx, std::unique_ptr<MCRelocationInfo> &RelInfo,
+    MCContext &Ctx, std::unique_ptr<MCRelocationInfo> RelInfo,
     const ObjectFile *Obj) {
   if (const MachOObjectFile *MOOF = dyn_cast<MachOObjectFile>(Obj))
-    return new MCMachObjectSymbolizer(Ctx, RelInfo, MOOF);
-  return new MCObjectSymbolizer(Ctx, RelInfo, Obj);
+    return new MCMachObjectSymbolizer(Ctx, std::move(RelInfo), MOOF);
+  return new MCObjectSymbolizer(Ctx, std::move(RelInfo), Obj);
 }
 
 // SortedSections implementation.
index 6395b113512dda14051d3853b7a1b3ace76163f4..bb1a1c7c513d1600200c227a325a4162adb21542 100644 (file)
@@ -13,8 +13,8 @@
 using namespace llvm;
 
 MCSymbolizer::MCSymbolizer(MCContext &Ctx,
-                           std::unique_ptr<MCRelocationInfo> &RelInfo)
-    : Ctx(Ctx), RelInfo(RelInfo.release()) {}
+                           std::unique_ptr<MCRelocationInfo> RelInfo)
+    : Ctx(Ctx), RelInfo(std::move(RelInfo)) {}
 
 MCSymbolizer::~MCSymbolizer() {
 }
index 42bbf731ff9bc29bffd778f587f08f9956dc35c0..729fcbaff48b453d4071fe94e89d5e85d2445631 100644 (file)
@@ -325,7 +325,8 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) {
         TheTarget->createMCRelocationInfo(TripleName, *Ctx.get()));
     if (RelInfo) {
       std::unique_ptr<MCSymbolizer> Symzer(
-          MCObjectSymbolizer::createObjectSymbolizer(*Ctx.get(), RelInfo, Obj));
+        MCObjectSymbolizer::createObjectSymbolizer(*Ctx.get(),
+                                                   std::move(RelInfo), Obj));
       if (Symzer)
         DisAsm->setSymbolizer(std::move(Symzer));
     }