Skip to content

Commit d12d5fa

Browse files
author
David C. Lonie
committed
Plug several VCS memory leaks.
1 parent bc0f333 commit d12d5fa

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

Packages/vcs/Lib/Canvas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4029,8 +4029,8 @@ def close(self, *args, **kargs):
40294029
"""
40304030
if self.configurator:
40314031
self.endconfigure()
4032-
# Close the VCS Canvas
40334032
a = self.backend.close(*args, **kargs)
4033+
self.animate_info = []
40344034

40354035
return a
40364036

Packages/vcs/Lib/VTKAnimate.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,6 @@ def __init__(self, vcs_self):
158158
self.renderers = []
159159
self.last_size = None
160160
self.modified_listener = None
161-
import atexit
162-
atexit.register(self.close)
163161

164162
def modified(self, obj, event):
165163
# Use this to sync canvas sizes and to prevent configureEvent from

Packages/vcs/Lib/animate_helper.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,7 @@ class AnimationController(animate_obj_old):
764764
def __init__(self, vcs_self):
765765
animate_obj_old.__init__(self, vcs_self)
766766
self.create_thread = None
767+
self.create_canvas = None
767768
self.playback_thread = None
768769

769770
self.animation_created = False
@@ -779,6 +780,13 @@ def __init__(self, vcs_self):
779780
self.AnimationPlayback = AnimationPlayback
780781
self._number_of_frames = None
781782

783+
def close(self, preserve_pngs = False):
784+
if self.create_canvas:
785+
self.create_canvas.close()
786+
self.create_canvas = None
787+
self.animate_info = []
788+
return super(AnimationController, self).close(preserve_pngs)
789+
782790
def set_signals(self, signals):
783791
self.signals = signals
784792

0 commit comments

Comments
 (0)