]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/io.py
io.mmap: init _bup_closed in __new__, not __init__
[bup.git] / lib / bup / io.py
index 79a6d83d5468c0e026a53415ce5dd91bf5d9bafc..e2fd410b3eb8b1eb444118acf06a8f8e88a8f62c 100644 (file)
@@ -22,14 +22,17 @@ class mmap(py_mmap.mmap):
     that aren't explicitly closed.
 
     '''
+    def __new__(cls, *args, **kwargs):
+        result = super().__new__(cls, *args, **kwargs)
+        result._bup_closed = True  # supports __del__
+        return result
 
     def __init__(self, *args, **kwargs):
-        self._bup_closed = True
         # Silence deprecation warnings.  mmap's current parent is
         # object, which accepts no params and as of at least 2.7
         # warns about them.
         if py_mmap.mmap.__init__ is not object.__init__:
-            super(mmap, self).__init__(self, *args, **kwargs)
+            super().__init__(self, *args, **kwargs)
         self._bup_closed = False
 
     def close(self):