diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-03-04 03:06:24 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-03-04 03:06:24 +0800 |
commit | ade55d6a9658567dcefb18fc0d536a7e3eed0c8c (patch) | |
tree | 02f3c16b703458b4e20446339f45f5e3061c2913 /embed | |
parent | b96b5b6cf8faac19449cf6800f72ce1e610a69ea (diff) | |
download | gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.tar gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.tar.gz gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.tar.bz2 gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.tar.lz gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.tar.xz gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.tar.zst gsoc2013-epiphany-ade55d6a9658567dcefb18fc0d536a7e3eed0c8c.zip |
Unset the GValue after we're done using what it contained.
2004-03-03 Christian Persch <chpe@cvs.gnome.org>
* embed/downloader-view.c: (download_dialog_pause_cb),
(download_dialog_abort_cb):
Unset the GValue after we're done using what it contained.
* embed/mozilla/MozDownload.cpp:
Weak ref mEphyDownload, and assert that is has been finalised by the time
we get to ~MozDownload.
* embed/mozilla/mozilla-download.cpp:
Debug output in _init and _finalize.
Diffstat (limited to 'embed')
-rw-r--r-- | embed/downloader-view.c | 9 | ||||
-rw-r--r-- | embed/mozilla/MozDownload.cpp | 4 | ||||
-rw-r--r-- | embed/mozilla/mozilla-download.cpp | 6 |
3 files changed, 16 insertions, 3 deletions
diff --git a/embed/downloader-view.c b/embed/downloader-view.c index 38360f089..735d808bf 100644 --- a/embed/downloader-view.c +++ b/embed/downloader-view.c @@ -575,7 +575,6 @@ download_dialog_pause_cb (GtkButton *button, DownloaderView *dv) gtk_tree_model_get_value (model, &iter, COL_DOWNLOAD_OBJECT, &val); download = g_value_get_object (&val); - g_value_unset (&val); state = ephy_download_get_state (download); @@ -587,6 +586,9 @@ download_dialog_pause_cb (GtkButton *button, DownloaderView *dv) { ephy_download_resume (download); } + + g_value_unset (&val); + update_buttons (dv); } @@ -670,11 +672,12 @@ download_dialog_abort_cb (GtkButton *button, DownloaderView *dv) gtk_tree_model_get_value (model, &iter, COL_DOWNLOAD_OBJECT, &val); download = g_value_get_object (&val); - g_value_unset (&val); g_return_if_fail (download != NULL); - + ephy_download_cancel ((EphyDownload*)download); downloader_view_remove_download (dv, download); + + g_value_unset (&val); } gboolean diff --git a/embed/mozilla/MozDownload.cpp b/embed/mozilla/MozDownload.cpp index f2877ce9b..f65ed2bd2 100644 --- a/embed/mozilla/MozDownload.cpp +++ b/embed/mozilla/MozDownload.cpp @@ -76,6 +76,8 @@ MozDownload::MozDownload() : MozDownload::~MozDownload() { LOG ("MozDownload dtor (%p)", (void *) this) + + NS_ASSERTION (!mEphyDownload, "MozillaDownload still alive!"); } NS_IMPL_ISUPPORTS2(MozDownload, nsIDownload, nsIWebProgressListener) @@ -129,6 +131,8 @@ MozDownload::Init(nsIURI *aSource, nsILocalFile *aTarget, const PRUnichar *aDisp dview = EPHY_DOWNLOADER_VIEW (ephy_embed_shell_get_downloader_view (embed_shell)); mEphyDownload = mozilla_download_new (this); + g_object_add_weak_pointer (G_OBJECT (mEphyDownload), + (gpointer *) &mEphyDownload); downloader_view_add_download (dview, mEphyDownload); g_object_unref (mEphyDownload); } diff --git a/embed/mozilla/mozilla-download.cpp b/embed/mozilla/mozilla-download.cpp index 71ed74874..8405ba29d 100644 --- a/embed/mozilla/mozilla-download.cpp +++ b/embed/mozilla/mozilla-download.cpp @@ -24,6 +24,8 @@ #include "mozilla-download.h" +#include "ephy-debug.h" + #include "nsString.h" static void @@ -198,6 +200,8 @@ mozilla_download_finalize (GObject *object) NS_RELEASE (download->priv->moz_download); + LOG ("MozillaDownload %p finalised", object) + G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -273,6 +277,8 @@ mozilla_download_class_init (MozillaDownloadClass *klass) static void mozilla_download_init (MozillaDownload *download) { + LOG ("MozillaDownload %p initialising", download) + download->priv = MOZILLA_DOWNLOAD_GET_PRIVATE (download); } |