From a2d246b6b8379f9a74dbc56feefc155f615b5ea4 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Thu, 16 Oct 2014 05:49:51 -0400 Subject: arch: Use shared_ptr for all Faults This patch takes quite a large step in transitioning from the ad-hoc RefCountingPtr to the c++11 shared_ptr by adopting its use for all Faults. There are no changes in behaviour, and the code modifications are mostly just replacing "new" with "make_shared". --- src/arch/x86/pagetable_walker.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/arch/x86/pagetable_walker.cc') diff --git a/src/arch/x86/pagetable_walker.cc b/src/arch/x86/pagetable_walker.cc index db3b4b933..cc2a5099d 100644 --- a/src/arch/x86/pagetable_walker.cc +++ b/src/arch/x86/pagetable_walker.cc @@ -49,6 +49,8 @@ * Authors: Gabe Black */ +#include + #include "arch/x86/pagetable.hh" #include "arch/x86/pagetable_walker.hh" #include "arch/x86/tlb.hh" @@ -196,8 +198,9 @@ Walker::startWalkWrapper() currState->req->getVaddr()); // finish the translation which will delete the translation object - currState->translation->finish(new UnimpFault("Squashed Inst"), - currState->req, currState->tc, currState->mode); + currState->translation->finish( + std::make_shared("Squashed Inst"), + currState->req, currState->tc, currState->mode); // delete the current request delete currState; @@ -705,7 +708,8 @@ Walker::WalkerState::pageFault(bool present) HandyM5Reg m5reg = tc->readMiscRegNoEffect(MISCREG_M5_REG); if (mode == BaseTLB::Execute && !enableNX) mode = BaseTLB::Read; - return new PageFault(entry.vaddr, present, mode, m5reg.cpl == 3, false); + return std::make_shared(entry.vaddr, present, mode, + m5reg.cpl == 3, false); } /* end namespace X86ISA */ } -- cgit v1.2.3