aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MC/MCFunction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MC/MCFunction.cpp')
-rw-r--r--lib/MC/MCFunction.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/MC/MCFunction.cpp b/lib/MC/MCFunction.cpp
index 767e1e0..1ddc250 100644
--- a/lib/MC/MCFunction.cpp
+++ b/lib/MC/MCFunction.cpp
@@ -20,22 +20,17 @@ 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 0;
+ return I->get();
+ return nullptr;
}
const MCBasicBlock *MCFunction::find(uint64_t StartAddr) const {