From: Tom Tromey Date: Mon, 1 Jun 2026 23:45:52 +0000 (-0600) Subject: Update use of deque in _frame_iterator X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=072a4cfdb580bb878ee59e8b89aa218e55fab441;p=thirdparty%2Fbinutils-gdb.git 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 --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