summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_mmap.py7
-rw-r--r--Modules/mmapmodule.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index 8cc8ded..91d6275 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -420,6 +420,13 @@ class MmapTests(unittest.TestCase):
except OSError:
pass
+ def test_subclass(self):
+ class anon_mmap(mmap.mmap):
+ def __new__(klass, *args, **kwargs):
+ return mmap.mmap.__new__(klass, -1, *args, **kwargs)
+ anon_mmap(PAGESIZE)
+
+
def test_main():
run_unittest(MmapTests)
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index dfbc8fc..09e9465 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -129,7 +129,7 @@ mmap_object_dealloc(mmap_object *m_obj)
}
#endif /* UNIX */
- PyObject_Del(m_obj);
+ m_obj->ob_type->tp_free((PyObject*)m_obj);
}
static PyObject *