Author: rolf
Date: 2008-02-19 19:23:01 -0500 (Tue, 19 Feb 2008)
New Revision: 96214

Modified:
   trunk/moon/src/ChangeLog
   trunk/moon/src/media.cpp
Log:
* media.cpp: MediaElement/Image: Remove event handlers when we abort
  the downloader, otherwise the handlers might be called after we're
  destroyed.

Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog    2008-02-20 00:21:18 UTC (rev 96213)
+++ trunk/moon/src/ChangeLog    2008-02-20 00:23:01 UTC (rev 96214)
@@ -1,3 +1,9 @@
+2008-02-20  Rolf Bjarne Kvinge <[EMAIL PROTECTED]> 
+
+       * media.cpp: MediaElement/Image: Remove event handlers when we abort the
+         downloader, otherwise the handlers might be called after we're
+         destroyed.
+
 2008-02-19  Jeffrey Stedfast  <[EMAIL PROTECTED]>
 
        * uri.cpp (Uri::ToString): Now takes a 'flags' argument to let us

Modified: trunk/moon/src/media.cpp
===================================================================
--- trunk/moon/src/media.cpp    2008-02-20 00:21:18 UTC (rev 96213)
+++ trunk/moon/src/media.cpp    2008-02-20 00:23:01 UTC (rev 96214)
@@ -555,6 +555,7 @@
 MediaElement::DownloaderAbort ()
 {
        if (downloader) {
+               downloader->RemoveHandler (downloader->CompletedEvent, 
downloader_complete, this);
                downloader_abort (downloader);
                downloader->unref ();
                downloader = NULL;
@@ -1582,6 +1583,8 @@
 Image::DownloaderAbort ()
 {
        if (downloader){
+               downloader->RemoveHandler (Downloader::CompletedEvent, 
downloader_complete, this);
+               downloader->RemoveHandler (Downloader::DownloadFailedEvent, 
downloader_failed, this);
                downloader_abort (downloader);
                downloader->unref ();
                downloader = NULL;

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to