Merge branch 'fix_traceanalyzer_leak' into 'develop'

Fix a memory leak in TraceAnalyzer

See merge request ems/astdm/dram.sys!294
This commit is contained in:
Lukas Steiner
2021-07-02 11:26:38 +00:00
2 changed files with 7 additions and 7 deletions

View File

@@ -129,22 +129,22 @@ QColor Phase::getColor(const TraceDrawingProperties &drawingProperties) const
break;
case ColorGrouping::Thread:
return ColorGenerator::getColor(static_cast<unsigned int>
(transaction->thread));
(transaction.lock()->thread));
break;
case ColorGrouping::Transaction:
default:
return ColorGenerator::getColor(transaction->id);
return ColorGenerator::getColor(transaction.lock()->id);
}
}
int Phase::getYVal(const TraceDrawingProperties &drawingProperties) const
{
if (getGranularity() == Granularity::Bankwise)
return drawingProperties.getYValOfBank(transaction->bank);
return drawingProperties.getYValOfBank(transaction.lock()->bank);
else if (getGranularity() == Granularity::Groupwise)
return drawingProperties.getYValOfBankGroup(transaction->rank, transaction->bank);
return drawingProperties.getYValOfBankGroup(transaction.lock()->rank, transaction.lock()->bank);
else // if (getGranularity() == Granularity::Rankwise)
return drawingProperties.getYValOfRank(transaction->rank);
return drawingProperties.getYValOfRank(transaction.lock()->rank);
}
Qt::BrushStyle Phase::getBrushStyle() const
@@ -206,5 +206,5 @@ bool Phase::isCollapsed(const TraceDrawingProperties &drawingProperties) const
if (dynamic_cast<const REQ *>(this) != nullptr || dynamic_cast<const RESP *>(this) != nullptr)
return false;
return drawingProperties.getRankCollapsedState(transaction->rank);
return drawingProperties.getRankCollapsedState(transaction.lock()->rank);
}

View File

@@ -80,7 +80,7 @@ protected:
ID id;
Timespan span;
traceTime clk;
std::shared_ptr<Transaction> transaction;
std::weak_ptr<Transaction> transaction;
std::vector<Timespan> spansOnCommandBus;
std::shared_ptr<Timespan> spanOnDataBus;
double hexagonHeight;