summaryrefslogtreecommitdiff
path: root/src/cpu/base_dyn_inst_impl.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/base_dyn_inst_impl.hh')
-rw-r--r--src/cpu/base_dyn_inst_impl.hh21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/cpu/base_dyn_inst_impl.hh b/src/cpu/base_dyn_inst_impl.hh
index f55bd8ed5..f5bcff2df 100644
--- a/src/cpu/base_dyn_inst_impl.hh
+++ b/src/cpu/base_dyn_inst_impl.hh
@@ -87,6 +87,7 @@ void
BaseDynInst<Impl>::initVars()
{
memData = NULL;
+ vldData = NULL;
effAddr = 0;
physEffAddrLow = 0;
physEffAddrHigh = 0;
@@ -132,6 +133,9 @@ BaseDynInst<Impl>::initVars()
#endif
reqToVerify = NULL;
+ postReq = NULL;
+ postSreqLow = NULL;
+ postSreqHigh = NULL;
}
template <class Impl>
@@ -141,6 +145,10 @@ BaseDynInst<Impl>::~BaseDynInst()
delete [] memData;
}
+ if (vldData) {
+ delete [] vldData;
+ }
+
if (traceData) {
delete traceData;
}
@@ -160,6 +168,19 @@ BaseDynInst<Impl>::~BaseDynInst()
if (reqToVerify)
delete reqToVerify;
+
+ if (needDeletePostReq()){
+ if (postReq){
+ delete postReq;
+ postReq = NULL;
+ }
+ if (postSreqLow) {
+ delete postSreqLow;
+ delete postSreqHigh;
+ postSreqLow = NULL;
+ postSreqHigh = NULL;
+ }
+ }
}
#ifdef DEBUG