Use unique_ptr to simplify deletion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222929 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Craig Topper
2014-11-28 20:30:37 +00:00
parent a1129621dd
commit 0c83952c2e
2 changed files with 5 additions and 7 deletions
+3 -5
View File
@@ -133,7 +133,7 @@ std::string llvm::getQualifiedName(const Record *R) {
/// getTarget - Return the current instance of the Target class.
///
CodeGenTarget::CodeGenTarget(RecordKeeper &records)
: Records(records), RegBank(nullptr), SchedModels(nullptr) {
: Records(records) {
std::vector<Record*> Targets = Records.getAllDerivedDefinitions("Target");
if (Targets.size() == 0)
PrintFatalError("ERROR: No 'Target' subclasses defined!");
@@ -144,8 +144,6 @@ CodeGenTarget::CodeGenTarget(RecordKeeper &records)
CodeGenTarget::~CodeGenTarget() {
DeleteContainerSeconds(Instructions);
delete RegBank;
delete SchedModels;
}
const std::string &CodeGenTarget::getName() const {
@@ -211,7 +209,7 @@ Record *CodeGenTarget::getAsmWriter() const {
CodeGenRegBank &CodeGenTarget::getRegBank() const {
if (!RegBank)
RegBank = new CodeGenRegBank(Records);
RegBank = llvm::make_unique<CodeGenRegBank>(Records);
return *RegBank;
}
@@ -265,7 +263,7 @@ void CodeGenTarget::ReadLegalValueTypes() const {
CodeGenSchedModels &CodeGenTarget::getSchedModels() const {
if (!SchedModels)
SchedModels = new CodeGenSchedModels(Records, *this);
SchedModels = llvm::make_unique<CodeGenSchedModels>(Records, *this);
return *SchedModels;
}