diff --git a/DRAMSys/traceAnalyzer/data/tracedb.cpp b/DRAMSys/traceAnalyzer/data/tracedb.cpp index 9259c07d..e931e936 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.cpp +++ b/DRAMSys/traceAnalyzer/data/tracedb.cpp @@ -141,12 +141,12 @@ vector> TraceDB::getTransactionsWithCustomQuery( } vector> TraceDB::getTransactionsInTimespan( - const Timespan &span) + const Timespan &span, bool updateVisiblePhases) { selectTransactionsByTimespan.bindValue(":begin", span.Begin()); selectTransactionsByTimespan.bindValue(":end", span.End()); executeQuery(selectTransactionsByTimespan); - return parseTransactionsFromQuery(selectTransactionsByTimespan, true); + return parseTransactionsFromQuery(selectTransactionsByTimespan, updateVisiblePhases); } void TraceDB::updateDependenciesInTimespan(const Timespan &span) diff --git a/DRAMSys/traceAnalyzer/data/tracedb.h b/DRAMSys/traceAnalyzer/data/tracedb.h index 5b8157be..7a4d91d7 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.h +++ b/DRAMSys/traceAnalyzer/data/tracedb.h @@ -88,7 +88,7 @@ public: std::vector> getTransactionsWithCustomQuery( QString queryText); std::vector> getTransactionsInTimespan( - const Timespan &span); + const Timespan &span, bool updateVisiblePhases = false); std::shared_ptr getNextPrecharge(traceTime time); std::shared_ptr getNextActivate(traceTime time); std::shared_ptr getNextRefresh(traceTime time); diff --git a/DRAMSys/traceAnalyzer/presentation/traceplot.cpp b/DRAMSys/traceAnalyzer/presentation/traceplot.cpp index a55b3de5..f9788235 100644 --- a/DRAMSys/traceAnalyzer/presentation/traceplot.cpp +++ b/DRAMSys/traceAnalyzer/presentation/traceplot.cpp @@ -506,9 +506,11 @@ void TracePlot::setZoomLevel(traceTime newZoomLevel) void TracePlot::currentTraceTimeChanged() { + bool drawDependencies = getDrawingProperties().drawDependenciesOption.draw != DependencyOption::Disabled; + transactions = navigator->TraceFile().getTransactionsInTimespan( - GetCurrentTimespan()); - if (getDrawingProperties().drawDependenciesOption.draw != DependencyOption::Disabled) { + GetCurrentTimespan(), drawDependencies); + if (drawDependencies) { navigator->TraceFile().updateDependenciesInTimespan(GetCurrentTimespan()); } diff --git a/DRAMSys/traceAnalyzer/presentation/tracescroller.cpp b/DRAMSys/traceAnalyzer/presentation/tracescroller.cpp index d82d3514..fdb4cdba 100644 --- a/DRAMSys/traceAnalyzer/presentation/tracescroller.cpp +++ b/DRAMSys/traceAnalyzer/presentation/tracescroller.cpp @@ -193,12 +193,14 @@ void TraceScroller::colorGroupingChanged(ColorGrouping colorGrouping) void TraceScroller::currentTraceTimeChanged() { + bool drawDependencies = drawingProperties.drawDependenciesOption.draw != DependencyOption::Disabled; + Timespan spanOnTracePlot = tracePlot->GetCurrentTimespan(); canvasClip->setInterval(spanOnTracePlot.Begin(), spanOnTracePlot.End()); Timespan span = GetCurrentTimespan(); - transactions = navigator->TraceFile().getTransactionsInTimespan(span); + transactions = navigator->TraceFile().getTransactionsInTimespan(span, drawDependencies); - if (drawingProperties.drawDependenciesOption.draw != DependencyOption::Disabled) { + if (drawDependencies) { navigator->TraceFile().updateDependenciesInTimespan(span); }