diff options
author | Tom Tromey <tromey@adacore.com> | 2024-05-16 07:57:59 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2024-06-04 10:54:18 -0600 |
commit | 4dd38c398331c2fdb8bfc7ffd78d836bae0d9303 (patch) | |
tree | 7036cac05d2fef6cd2afaa81ab92e55aba3dab4e | |
parent | aac3cc825813ad29f715a1eecc6fc3464280716f (diff) | |
download | gdb-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.py | 7 |
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: |