|
From: Kevin A. <ka...@us...> - 2004-04-26 17:25:07
|
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 ---- ! |