aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2024-05-16 07:57:59 -0600
committerTom Tromey <tromey@adacore.com>2024-06-04 10:54:18 -0600
commit4dd38c398331c2fdb8bfc7ffd78d836bae0d9303 (patch)
tree7036cac05d2fef6cd2afaa81ab92e55aba3dab4e
parentaac3cc825813ad29f715a1eecc6fc3464280716f (diff)
downloadgdb-4dd38c398331c2fdb8bfc7ffd78d836bae0d9303.zip
gdb-4dd38c398331c2fdb8bfc7ffd78d836bae0d9303.tar.gz
gdb-4dd38c398331c2fdb8bfc7ffd78d836bae0d9303.tar.bz2
Convert DAP disassemble code to use Block hashing
This changes the DAP disassemble code to use the new Block hashing, storing the already-visited blocks in a set rather than a list.
-rw-r--r--gdb/python/lib/gdb/dap/disassemble.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/gdb/python/lib/gdb/dap/disassemble.py b/gdb/python/lib/gdb/dap/disassemble.py
index d65790a..a2e27e5 100644
--- a/gdb/python/lib/gdb/dap/disassemble.py
+++ b/gdb/python/lib/gdb/dap/disassemble.py
@@ -27,9 +27,8 @@ class _BlockTracker:
# just one label -- DAP wouldn't let us return multiple labels
# anyway.
self.labels = {}
- # List of blocks that have already been handled. Note that
- # blocks aren't hashable so a set is not used.
- self.blocks = []
+ # Blocks that have already been handled.
+ self.blocks = set()
# Add a gdb.Block and its superblocks, ignoring the static and
# global block. BLOCK can also be None, which is ignored.
@@ -37,7 +36,7 @@ class _BlockTracker:
while block is not None:
if block.is_static or block.is_global or block in self.blocks:
return
- self.blocks.append(block)
+ self.blocks.add(block)
if block.function is not None:
self.labels[block.start] = block.function.name
for sym in block: