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

View File

@ -101,13 +101,6 @@ GCStrategy::GCStrategy() :
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::performCustomLowering(Function &F) {
@ -123,9 +116,8 @@ bool GCStrategy::findCustomSafePoints(GCFunctionInfo& FI, MachineFunction &F) {
GCFunctionInfo *GCStrategy::insertFunctionInfo(const Function &F) {
GCFunctionInfo *FI = new GCFunctionInfo(F, *this);
Functions.push_back(FI);
return FI;
Functions.push_back(make_unique<GCFunctionInfo>(F, *this));
return Functions.back().get();
}
// -----------------------------------------------------------------------------