From b4918a512bef271d7f6e27980ea875208c7f2954 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 1 Jul 2025 19:52:14 -0400 Subject: Reduce number of refreshes and memory usage of cross references widget. * Generates IL for cross references only when visible instead of all at once. * Releases memory for IL after the cross references retrieves the tokens. * Much faster algorithm for updating IL when functions change. * Don't refresh cross references at all if the widget isn't visible. Retreiving the new set of cross references is deferred until the widget becomes visible again. * Don't redo the query for the list of cross references when anything in the entire UI changes, even the window layout. Only recompute the list when an event for a new cross reference selection comes in. --- function.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'function.cpp') diff --git a/function.cpp b/function.cpp index 367dbe80..19d3fbc7 100644 --- a/function.cpp +++ b/function.cpp @@ -3566,6 +3566,9 @@ AdvancedFunctionAnalysisDataRequestor& AdvancedFunctionAnalysisDataRequestor::op void AdvancedFunctionAnalysisDataRequestor::SetFunction(Function* func) { + if (m_func.GetPtr() == func) + return; + if (m_func) m_func->ReleaseAdvancedAnalysisData(); -- cgit v1.3.1