summaryrefslogtreecommitdiff
path: root/lib/MC/MCFunction.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-04-15 04:56:29 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-04-15 04:56:29 +0000
commita8ae0ad11fe5e8e649e3add7585a6ad235a27fad (patch)
treeb92c20303e568f2421aadf40938d4d7ad1243a99 /lib/MC/MCFunction.cpp
parent508bd630466f9625ba07a3f601435e1ff824b768 (diff)
downloadllvm-a8ae0ad11fe5e8e649e3add7585a6ad235a27fad.tar.gz
llvm-a8ae0ad11fe5e8e649e3add7585a6ad235a27fad.tar.bz2
llvm-a8ae0ad11fe5e8e649e3add7585a6ad235a27fad.tar.xz
Use std::unique_ptr to manage MCBasicBlocks in MCFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206242 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCFunction.cpp')
-rw-r--r--lib/MC/MCFunction.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/MC/MCFunction.cpp b/lib/MC/MCFunction.cpp
index 9066d31a40..1ddc2505f0 100644
--- a/lib/MC/MCFunction.cpp
+++ b/lib/MC/MCFunction.cpp
@@ -20,21 +20,16 @@ MCFunction::MCFunction(StringRef Name, MCModule *Parent)
: Name(Name), ParentModule(Parent)
{}
-MCFunction::~MCFunction() {
- for (iterator I = begin(), E = end(); I != E; ++I)
- delete *I;
-}
-
MCBasicBlock &MCFunction::createBlock(const MCTextAtom &TA) {
- MCBasicBlock *MCBB = new MCBasicBlock(TA, this);
- Blocks.push_back(MCBB);
- return *MCBB;
+ std::unique_ptr<MCBasicBlock> MCBB(new MCBasicBlock(TA, this));
+ Blocks.push_back(std::move(MCBB));
+ return *Blocks.back();
}
MCBasicBlock *MCFunction::find(uint64_t StartAddr) {
for (const_iterator I = begin(), E = end(); I != E; ++I)
if ((*I)->getInsts()->getBeginAddr() == StartAddr)
- return *I;
+ return I->get();
return nullptr;
}