diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2025-07-01 19:52:14 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2025-07-03 12:43:48 -0400 |
| commit | b4918a512bef271d7f6e27980ea875208c7f2954 (patch) | |
| tree | 9708e48bbaa6d9dc0352c50c0b1aac0279283e59 /function.cpp | |
| parent | b26a85dda211a0f1f00eecc37441e1725c5ef898 (diff) | |
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.
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
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(); |
