diff options
| author | blasty <blasty@local> | 2026-07-28 16:17:21 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-07-28 16:17:21 +0200 |
| commit | 20e34495efd523721990534358e45eb8f6b25c34 (patch) | |
| tree | 00c28de53b99dcbc5b8d5361e9b0054426b24b23 /idatui/project.py | |
| parent | trace: stop the decompiler thrashing during a step (and correct the record) (diff) | |
| download | ida-tui-main.tar.gz ida-tui-main.tar.xz ida-tui-main.zip | |
Finishing the thing the last commit only worked around. The split view and the
trace path each kept their own per-line instruction map of the same
pseudocode — fetched separately, indexed separately, and keyed differently: the
split one on _cur (the function the CURSOR is in), the trace one on the function
the DECOMPILER has loaded. Those are not the same thing, which is precisely how
the two ended up describing different functions and why I spent a commit
chasing a "sparse decomp_map" that was never sparse.
_apply_split_map now indexes once and both read it. Keyed on the decompiler's
loaded function, and no longer conditional on split being on — the old guard
dropped the result whenever _cur had moved while the fetch was in flight, which
during stepping is almost always.
Measured after: three decomp_map fetches across 28 steps (two for main, one for
the function stepped into), the split map and the trace map are literally the
same object, and both describe what is on screen.
Process note, because this is the second time: my first attempt at this edit
SILENTLY DID NOTHING — the pattern didn't match (a duplicated comment line I'd
mangled), the old method stayed, and the new caller hit its `not self._split`
guard, so the painting tests went from passing to "0 lines". Same failure mode
as the key bindings that never got added. Structural edits now assert that the
anchor was found and that the replacement is present before writing.
212/0 scenarios, 26/0 trace UI, 30/0 project UI, 20/0 split view.
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions
