Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ef20cbf

Browse files
committed
Merge with 3.5
2 parents 63063af + 6b98ce2 commit ef20cbf

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

Lib/idlelib/configDialog.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,17 @@ def AttachVarCallbacks(self):
483483
self.autoSave.trace_variable('w', self.VarChanged_autoSave)
484484
self.encoding.trace_variable('w', self.VarChanged_encoding)
485485

486+
def remove_var_callbacks(self):
487+
"Remove callbacks to prevent memory leaks."
488+
for var in (
489+
self.fontSize, self.fontName, self.fontBold,
490+
self.spaceNum, self.colour, self.builtinTheme,
491+
self.customTheme, self.themeIsBuiltin, self.highlightTarget,
492+
self.keyBinding, self.builtinKeys, self.customKeys,
493+
self.keysAreBuiltin, self.winWidth, self.winHeight,
494+
self.startupEdit, self.autoSave, self.encoding,):
495+
var.trace_vdelete('w', var.trace_vinfo()[0][1])
496+
486497
def VarChanged_font(self, *params):
487498
'''When one font attribute changes, save them all, as they are
488499
not independent from each other. In particular, when we are

Lib/idlelib/idle_test/test_configdialog.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def tearDownClass(cls):
2525

2626
def test_dialog(self):
2727
d=ConfigDialog(self.root, 'Test', _utest=True)
28+
d.remove_var_callbacks()
2829
d.destroy()
2930

3031

0 commit comments

Comments
 (0)