summaryrefslogtreecommitdiff
path: root/engine/SCons/dblite.py
diff options
context:
space:
mode:
Diffstat (limited to 'engine/SCons/dblite.py')
-rw-r--r--engine/SCons/dblite.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/engine/SCons/dblite.py b/engine/SCons/dblite.py
index f4ba90a..707a4f8 100644
--- a/engine/SCons/dblite.py
+++ b/engine/SCons/dblite.py
@@ -3,7 +3,6 @@
import SCons.compat
-import builtins
import os
# compat layer imports "cPickle" for us if it's available.
import pickle
@@ -44,7 +43,7 @@ class dblite(object):
# See the discussion at:
# http://mail.python.org/pipermail/python-bugs-list/2003-March/016877.html
- _open = builtins.open
+ _open = open
_pickle_dump = staticmethod(pickle.dump)
_os_chmod = os.chmod
try:
@@ -99,7 +98,10 @@ class dblite(object):
if (len(p) > 0):
try:
self._dict = pickle.loads(p)
- except (pickle.UnpicklingError, EOFError):
+ except (pickle.UnpicklingError, EOFError, KeyError):
+ # Note how we catch KeyErrors too here, which might happen
+ # when we don't have cPickle available (default pickle
+ # throws it).
if (ignore_corrupt_dbfiles == 0): raise
if (ignore_corrupt_dbfiles == 1):
corruption_warning(self._file_name)