Use unique_ptr to manage ownership of GCFunctionInfos in GCStrategy

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206249 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie 2014-04-15 06:07:26 +00:00
parent 9c94042083
commit 3229c698e4
2 changed files with 4 additions and 12 deletions

View File

@ -54,7 +54,7 @@ namespace llvm {
/// be abstractly described. /// be abstractly described.
class GCStrategy { class GCStrategy {
public: public:
typedef std::vector<GCFunctionInfo*> list_type; typedef std::vector<std::unique_ptr<GCFunctionInfo>> list_type;
typedef list_type::iterator iterator; typedef list_type::iterator iterator;
private: private:
@ -77,7 +77,7 @@ namespace llvm {
public: public:
GCStrategy(); GCStrategy();
virtual ~GCStrategy(); virtual ~GCStrategy() {}
/// getName - The name of the GC strategy, for debugging. /// getName - The name of the GC strategy, for debugging.

View File

@ -101,13 +101,6 @@ GCStrategy::GCStrategy() :
UsesMetadata(false) UsesMetadata(false)
{} {}
GCStrategy::~GCStrategy() {
for (iterator I = begin(), E = end(); I != E; ++I)
delete *I;
Functions.clear();
}
bool GCStrategy::initializeCustomLowering(Module &M) { return false; } bool GCStrategy::initializeCustomLowering(Module &M) { return false; }
bool GCStrategy::performCustomLowering(Function &F) { bool GCStrategy::performCustomLowering(Function &F) {
@ -123,9 +116,8 @@ bool GCStrategy::findCustomSafePoints(GCFunctionInfo& FI, MachineFunction &F) {
GCFunctionInfo *GCStrategy::insertFunctionInfo(const Function &F) { GCFunctionInfo *GCStrategy::insertFunctionInfo(const Function &F) {
GCFunctionInfo *FI = new GCFunctionInfo(F, *this); Functions.push_back(make_unique<GCFunctionInfo>(F, *this));
Functions.push_back(FI); return Functions.back().get();
return FI;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------