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.
This commit is contained in:
Tom Tromey 2026-06-01 17:45:52 -06:00
parent d3b84dac94
commit 072a4cfdb5

View file

@ -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