From 4dd38c398331c2fdb8bfc7ffd78d836bae0d9303 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 16 May 2024 07:57:59 -0600 Subject: 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. --- gdb/python/lib/gdb/dap/disassemble.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'gdb/python') 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: -- cgit v1.1