diff options
-rw-r--r-- | Lib/test/test_mmap.py | 5 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/mmapmodule.c | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index 8a145cf..49ec78b 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -436,6 +436,11 @@ class MmapTests(unittest.TestCase): self.assertRaises(TypeError, m.write, "foo") + def test_error(self): + self.assert_(issubclass(mmap.error, EnvironmentError)) + self.assert_("mmap.error" in str(mmap.error)) + + def test_main(): run_unittest(MmapTests) @@ -1149,6 +1149,9 @@ Library Extension Modules ----------------- +- #2112: mmap.error is now a subclass of EnvironmentError and not a + direct EnvironmentError + - Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ - #2063: correct order of utime and stime in os.times() result on Windows. diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index e47211f..c71d840 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -1402,7 +1402,10 @@ initmmap(void) dict = PyModule_GetDict(module); if (!dict) return; - mmap_module_error = PyExc_EnvironmentError; + mmap_module_error = PyErr_NewException("mmap.error", + PyExc_EnvironmentError , NULL); + if (mmap_module_error == NULL) + return; PyDict_SetItemString(dict, "error", mmap_module_error); PyDict_SetItemString(dict, "mmap", (PyObject*) &mmap_object_type); #ifdef PROT_EXEC |