From: Tom Tromey Date: Thu, 16 May 2024 13:57:59 +0000 (-0600) Subject: Convert DAP disassemble code to use Block hashing X-Git-Tag: binutils-2_43~542 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4dd38c398331c2fdb8bfc7ffd78d836bae0d9303;p=thirdparty%2Fbinutils-gdb.git 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. --- diff --git a/gdb/python/lib/gdb/dap/disassemble.py b/gdb/python/lib/gdb/dap/disassemble.py index d65790a40b0..a2e27e54a64 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: