Update of /cvsroot/pythoncard/PythonCard
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30443
Modified Files:
event.py model.py
Log Message:
temporary additions for tracking and fixing memory leak, see KEA 2004-04-26
Index: model.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/model.py,v
retrieving revision 1.157
retrieving revision 1.158
diff -C2 -d -r1.157 -r1.158
*** model.py 26 Apr 2004 00:07:15 -0000 1.157
--- model.py 26 Apr 2004 17:24:59 -0000 1.158
***************
*** 664,669 ****
try:
# All events should have GetEventObject().
! aWxEvent.target = aWxEvent.GetEventObject()
! aWxEvent.eventObject = aWxEvent.target
except:
pass
--- 664,668 ----
try:
# All events should have GetEventObject().
! aWxEvent.target = aWxEvent.eventObject = aWxEvent.GetEventObject()
except:
pass
***************
*** 703,706 ****
--- 702,715 ----
if not evt.getUsed():
aWxEvent.Skip()
+
+ # KEA 2004-04-26
+ # attempt to remove circular references
+ # to cleanup background event memory leaks
+ evt._nativeEvent.target = evt._nativeEvent.eventObject = None
+ evt._nativeEvent = None
+ if 0:
+ print evt
+ evt = None
+
#print " ", str(self.GetParent()).split(';')[0]
#print " ", evt.getUsed(), str(aWxEvent.GetSkipped()).split(';')[0]
Index: event.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/event.py,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** event.py 26 Apr 2004 00:07:13 -0000 1.49
--- event.py 26 Apr 2004 17:24:59 -0000 1.50
***************
*** 856,860 ****
# Make a copy of the event class list so we can
# strip out the mouse event classes.
!
widgetClasses = []
widgetClasses = widgetClasses + aEventClassList
--- 856,862 ----
# Make a copy of the event class list so we can
# strip out the mouse event classes.
! # KEA 2004-0-26
! if 0:
! print "_bindMouseEvents", self
widgetClasses = []
widgetClasses = widgetClasses + aEventClassList
***************
*** 898,911 ****
# for some reason wx.TimerEvent does not contain the event target
# so we have to set it ourselves
! aWxEvent.target = self._component
! aWxEvent.eventObject = aWxEvent.target
else:
try:
# all events should have GetEventObject()
# except of course for wx.TimerEvent above
- aWxEvent.target = aWxEvent.GetEventObject()
# KEA 2004-04-25
# should we remove this redundant identifier?
! aWxEvent.eventObject = aWxEvent.target
except:
pass
--- 900,911 ----
# for some reason wx.TimerEvent does not contain the event target
# so we have to set it ourselves
! aWxEvent.target = aWxEvent.eventObject = self._component
else:
try:
# all events should have GetEventObject()
# except of course for wx.TimerEvent above
# KEA 2004-04-25
# should we remove this redundant identifier?
! aWxEvent.target = aWxEvent.eventObject = self._component
except:
pass
***************
*** 970,978 ****
--- 970,994 ----
self._component._notifyEventListeners(evt)
aWxEvent.Skip()
+
+ # KEA 2004-04-26
+ # attempt to remove circular references
+ # to cleanup background event memory leaks
+ evt._nativeEvent.target = evt._nativeEvent.eventObject = None
+ evt._nativeEvent = None
+ if 0:
+ print evt
+ evt = None
+
return True
else :
return False
+ # KEA 2004-04-26
+ # some event types use _createEvent and others don't
+ # sometimes the line below is used
+ # evt = self.wxEventIdMap[eventType](self._component)
+ # which is part of the _dispatch method above
def _createEvent( self, aEventClass, aWxEvent ) :
+ print "_createEvent", aEventClass
evt = aEventClass( self._component )
evt.setNativeEvent( aWxEvent )
***************
*** 980,982 ****
!
\ No newline at end of file
--- 996,998 ----
!
|