Commit 14b2d30b authored by Guido van Rossum's avatar Guido van Rossum

Protect against accessing an empty stack.

parent 6aa42579
...@@ -100,6 +100,7 @@ class StackViewer(ScrolledList): ...@@ -100,6 +100,7 @@ class StackViewer(ScrolledList):
ScrolledList.__init__(self, master) ScrolledList.__init__(self, master)
self.flist = flist self.flist = flist
self.browser = browser self.browser = browser
self.stack = []
def load_stack(self, stack, index=None): def load_stack(self, stack, index=None):
self.stack = stack self.stack = stack
...@@ -132,6 +133,10 @@ class StackViewer(ScrolledList): ...@@ -132,6 +133,10 @@ class StackViewer(ScrolledList):
if index is not None: if index is not None:
self.select(index) self.select(index)
def popup_event(self, event):
if self.stack:
return ScrolledList.popup_event(self, event)
def fill_menu(self): def fill_menu(self):
menu = self.menu menu = self.menu
menu.add_command(label="Go to source line", menu.add_command(label="Go to source line",
...@@ -140,7 +145,8 @@ class StackViewer(ScrolledList): ...@@ -140,7 +145,8 @@ class StackViewer(ScrolledList):
command=self.show_stack_frame) command=self.show_stack_frame)
def on_select(self, index): def on_select(self, index):
self.browser.show_frame(self.stack[index]) if 0 <= index < len(self.stack):
self.browser.show_frame(self.stack[index])
def on_double(self, index): def on_double(self, index):
self.show_source(index) self.show_source(index)
...@@ -151,9 +157,12 @@ class StackViewer(ScrolledList): ...@@ -151,9 +157,12 @@ class StackViewer(ScrolledList):
def show_stack_frame(self): def show_stack_frame(self):
index = self.listbox.index("active") index = self.listbox.index("active")
self.browser.show_frame(self.stack[index]) if 0 <= index < len(self.stack):
self.browser.show_frame(self.stack[index])
def show_source(self, index): def show_source(self, index):
if not (0 <= index < len(self.stack)):
return
frame, lineno = self.stack[index] frame, lineno = self.stack[index]
code = frame.f_code code = frame.f_code
filename = code.co_filename filename = code.co_filename
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment