diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-04-13 12:27:33 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-04-13 12:27:33 (GMT) |
commit | 3d7497608ba8dd0b82d69944f484febdad7dc507 (patch) | |
tree | e99465f79d61aa0aa75b9ccc062fbe5f8902e9e2 /Lib | |
parent | a3c532b0ed888ae5b7287f1484c311be9d324d70 (diff) | |
download | cpython-3d7497608ba8dd0b82d69944f484febdad7dc507.zip cpython-3d7497608ba8dd0b82d69944f484febdad7dc507.tar.gz cpython-3d7497608ba8dd0b82d69944f484febdad7dc507.tar.bz2 |
Issue #26718: super.__init__ no longer leaks memory if called multiple times.
NOTE: A direct call of super.__init__ is not endorsed!
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_super.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_super.py b/Lib/test/test_super.py index dc3a15f..b84863f 100644 --- a/Lib/test/test_super.py +++ b/Lib/test/test_super.py @@ -171,6 +171,15 @@ class TestSuper(unittest.TestCase): c = f().__closure__[0] self.assertRaises(TypeError, X.meth, c) + def test_super_init_leaks(self): + # Issue #26718: super.__init__ leaked memory if called multiple times. + # This will be caught by regrtest.py -R if this leak. + # NOTE: Despite the use in the test a direct call of super.__init__ + # is not endorsed. + sp = super(float, 1.0) + for i in range(1000): + super.__init__(sp, int, i) + if __name__ == "__main__": unittest.main() |