[binutils-gdb] Update use of deque in _frame_iterator

Tom Tromey via Gdb-cvs <[email protected]> Mon, 22 Jun 2026 23:47:43 +0000 (GMT)
Newsgroups gmane.comp.gdb.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=072a4cfdb580bb878ee59e8b89aa218e55fab441

commit 072a4cfdb580bb878ee59e8b89aa218e55fab441
Author: Tom Tromey <[email protected]>
Date:   Mon Jun 1 17:45:52 2026 -0600

    Update use of deque in _frame_iterator
    
    _frame_iterator has an old comment about some hand-written code that
    was needed when supporting Python 2.6.  This patch simplifies the code
    by using a couple of features of collections.deque.

Diff:
---
 gdb/python/lib/gdb/frames.py | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/gdb/python/lib/gdb/frames.py b/gdb/python/lib/gdb/frames.py
index de954e4fb38..6539416b1c2 100644
--- a/gdb/python/lib/gdb/frames.py
+++ b/gdb/python/lib/gdb/frames.py
@@ -186,18 +186,7 @@ def _frame_iterator(frame, frame_low, frame_high, dap_semantics):
 
     # Is this a slice from the end of the backtrace, ie bt -2?
     if frame_low < 0:
-        count = 0
-        slice_length = abs(frame_low)
-        # We cannot use MAXLEN argument for deque as it is 2.6 onwards
-        # and some GDB versions might be < 2.6.
-        sliced = collections.deque()
-
-        for frame_item in frame_iterator:
-            if count >= slice_length:
-                sliced.popleft()
-            count = count + 1
-            sliced.append(frame_item)
-
+        sliced = collections.deque(iterable=frame_iterator, maxlen=abs(frame_low))
         return iter(sliced)
 
     # -1 for frame_high means until the end of the backtrace.  Set to