diff options
author | JP Rosevear <jpr@novell.com> | 2005-01-22 00:01:54 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2005-01-22 00:01:54 +0800 |
commit | ee49a6715e1112891081b3484528dbd27539f1fd (patch) | |
tree | b6b656816cbfc629489e83bab9b01d3ab2419f08 /shell | |
parent | 2f6c84abec424b7d3d99967ac62803f57ac98831 (diff) | |
download | gsoc2013-evolution-ee49a6715e1112891081b3484528dbd27539f1fd.tar.gz gsoc2013-evolution-ee49a6715e1112891081b3484528dbd27539f1fd.tar.zst gsoc2013-evolution-ee49a6715e1112891081b3484528dbd27539f1fd.zip |
mark priv->finished as true first so we don't access freed memory if we
2005-01-21 JP Rosevear <jpr@novell.com>
* e-shell-offline-handler.c
(impl_OfflineProgressListener_updateProgress): mark priv->finished
as true first so we don't access freed memory if we get finalized
during the signal emmission
(cancel_offline): ditto
(finalize_offline): ditto
(e_shell_offline_handler_put_components_offline): ditto
svn path=/trunk/; revision=28487
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ChangeLog | 10 | ||||
-rw-r--r-- | shell/e-shell-offline-handler.c | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index cb86b14e55..37c4a470d5 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,13 @@ +2005-01-21 JP Rosevear <jpr@novell.com> + + * e-shell-offline-handler.c + (impl_OfflineProgressListener_updateProgress): mark priv->finished + as true first so we don't access freed memory if we get finalized + during the signal emmission + (cancel_offline): ditto + (finalize_offline): ditto + (e_shell_offline_handler_put_components_offline): ditto + 2005-01-20 Mengjie Yu <meng-jie.yu@sun.com> * e-shell-importer.c: (import_druid_esc), diff --git a/shell/e-shell-offline-handler.c b/shell/e-shell-offline-handler.c index 6e6350b140..950aa71956 100644 --- a/shell/e-shell-offline-handler.c +++ b/shell/e-shell-offline-handler.c @@ -212,8 +212,8 @@ impl_OfflineProgressListener_updateProgress (PortableServer_Servant servant, update_dialog_clist (offline_handler); if (priv->num_total_connections == 0 && ! priv->finished) { - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, TRUE); priv->finished = TRUE; + g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, TRUE); } } @@ -384,8 +384,8 @@ cancel_offline (EShellOfflineHandler *offline_handler) priv->num_total_connections = 0; if (! priv->finished) { - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, FALSE); priv->finished = TRUE; + g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, FALSE); } } @@ -511,8 +511,8 @@ finalize_offline (EShellOfflineHandler *offline_handler) if (priv->num_total_connections == 0 && ! priv->finished) { /* Nothing else to do, we are all set. */ - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, TRUE); priv->finished = TRUE; + g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, TRUE); } g_object_unref (offline_handler); @@ -846,8 +846,8 @@ e_shell_offline_handler_put_components_offline (EShellOfflineHandler *offline_ha if (! prepare_for_offline (offline_handler)) { /* FIXME: Maybe do something smarter here. */ g_warning ("Couldn't put components off-line"); - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, FALSE); priv->finished = TRUE; + g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, FALSE); g_object_unref (offline_handler); return; } |