aboutsummaryrefslogtreecommitdiffstats
path: root/idatui/edit_ctl.py
diff options
context:
space:
mode:
Diffstat (limited to 'idatui/edit_ctl.py')
-rw-r--r--idatui/edit_ctl.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/idatui/edit_ctl.py b/idatui/edit_ctl.py
index 54f4d89..435fab9 100644
--- a/idatui/edit_ctl.py
+++ b/idatui/edit_ctl.py
@@ -288,7 +288,7 @@ class EditController:
app.call_from_thread(app._status, err)
return
# The label shows in the listing's head rows -> invalidate + reopen.
- app.program.bump_items()
+ app.program.bump_items(addr)
# Naming the address *of a function start* is a function rename by any
# other name. Without this the cached index kept the old name, so
# `functions`/`names`/resolve/the palette all reported the rename had
@@ -510,7 +510,7 @@ class EditController:
diag.note(f"make_data({ea:#x}, {type_decl!r})", e)
app.call_from_thread(app._status, f"make data: {e}")
return
- app.program.bump_items()
+ app.program.bump_items(ea)
anchor = anchor or _M().ViewAnchor()
anchor.flash = f"data ({type_decl}) @ {ea:#x} (Ctrl+S to save)"
name = app.program.region_label(ea)
@@ -707,8 +707,10 @@ class EditController:
diag.note(f"edit_item({kind}, {ea:#x})", e)
app.call_from_thread(app._status, f"{kind}: {e}")
return
- # Structure changed everywhere: drop all item/function/decomp caches.
- app.program.bump_items()
+ # Structure changed: drop all item/function/decomp caches. The segment
+ # listing keeps its walk in front of `ea` -- rows before an edit keep
+ # their addresses and their row numbers.
+ app.program.bump_items(ea)
# Re-resolve: a define_func upgrades the region to a real function view;
# anything else re-reads the (still function-less) listing in place.
anchor = anchor or _M().ViewAnchor()