From ab7b6e1e992e2c239c0a9b117b4fb0ba7b7a8ddd Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 8 Jan 2014 11:27:29 +0530 Subject: [PATCH] Slightly more useful error on checkpoint stack corruption --- src/calibre/gui2/tweak_book/undo.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/tweak_book/undo.py b/src/calibre/gui2/tweak_book/undo.py index ae388c56ce..00a25a3e31 100644 --- a/src/calibre/gui2/tweak_book/undo.py +++ b/src/calibre/gui2/tweak_book/undo.py @@ -38,7 +38,11 @@ class GlobalUndoHistory(object): self.pos = 0 def add_savepoint(self, new_container, message): - self.states[self.pos].message = message + try: + self.states[self.pos].message = message + except IndexError: + raise IndexError('The checkpoint stack has an incorrect position pointer. This should never happen: self.pos = %r, len(self.states) = %r' % ( + self.pos, len(self.states))) extra = self.states[self.pos+1:] cleanup(extra) self.states = self.states[:self.pos+1]