From: Anthony Baxter Date: Fri, 21 Dec 2001 05:13:37 +0000 (+0000) Subject: forward-patch from release21-maint branch: X-Git-Tag: v2.3c1~6970 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ed9057083bcdcce37ddb66bc01e9b7fddb5ea206;p=thirdparty%2FPython%2Fcpython.git forward-patch from release21-maint branch: Make dumbdbm merely "dumb", rather than "terminally broken". Without this patch, it's almost impossible to use dumbdbm _without_ causing horrible datalossage. With this patch, dumbdbm passes my own horrible torture test, as well as the roundup test suite. dumbdbm really could do with a smidgin of a rewrite or two, but that's not suitable for the release21-maint branch. --- diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py index 0fd2dad2fc89..920a464d4f3c 100644 --- a/Lib/dumbdbm.py +++ b/Lib/dumbdbm.py @@ -143,9 +143,15 @@ class _Database: return len(self._index) def close(self): + self._commit() self._index = None self._datfile = self._dirfile = self._bakfile = None + def __del__(self): + if self._index is not None: + self._commit() + + def open(file, flag=None, mode=0666): # flag, mode arguments are currently ignored