Just ignore the request if the activity handler has the
* e-activity-handler.c (impl_operationProgressing): Just ignore the request if the activity handler has the GTK_OBJECT_DESTROYED() flag set. This should prevent crashes like #7542 and friends when the components are not well-behaved enough to respect the Bonobo refcounting. (impl_operationStarted): Likewise. (impl_operationFinished): Likewise. (impl_requestDialog): Likewise. svn path=/trunk/; revision=12609
This commit is contained in:
@ -1,3 +1,14 @@
|
||||
2001-09-04 Ettore Perazzoli <ettore@ximian.com>
|
||||
|
||||
* e-activity-handler.c (impl_operationProgressing): Just ignore
|
||||
the request if the activity handler has the GTK_OBJECT_DESTROYED()
|
||||
flag set. This should prevent crashes like #7542 and friends when
|
||||
the components are not well-behaved enough to respect the Bonobo
|
||||
refcounting.
|
||||
(impl_operationStarted): Likewise.
|
||||
(impl_operationFinished): Likewise.
|
||||
(impl_requestDialog): Likewise.
|
||||
|
||||
2001-09-04 Iain Holmes <iain@ximian.com>
|
||||
|
||||
* e-shell-importer.c (start_import): Check the file exists before trying
|
||||
|
||||
@ -385,6 +385,10 @@ impl_operationStarted (PortableServer_Servant servant,
|
||||
GSList *p;
|
||||
|
||||
activity_handler = E_ACTIVITY_HANDLER (bonobo_object_from_servant (servant));
|
||||
|
||||
if (GTK_OBJECT_DESTROYED (activity_handler))
|
||||
return;
|
||||
|
||||
priv = activity_handler->priv;
|
||||
|
||||
if (icon->_length == 0) {
|
||||
@ -430,6 +434,10 @@ impl_operationProgressing (PortableServer_Servant servant,
|
||||
/* FIXME? The complexity in this function sucks. */
|
||||
|
||||
activity_handler = E_ACTIVITY_HANDLER (bonobo_object_from_servant (servant));
|
||||
|
||||
if (GTK_OBJECT_DESTROYED (activity_handler))
|
||||
return;
|
||||
|
||||
priv = activity_handler->priv;
|
||||
|
||||
p = lookup_activity (priv->activity_infos, activity_id, &order_number);
|
||||
@ -469,6 +477,10 @@ impl_operationFinished (PortableServer_Servant servant,
|
||||
int order_number;
|
||||
|
||||
activity_handler = E_ACTIVITY_HANDLER (bonobo_object_from_servant (servant));
|
||||
|
||||
if (GTK_OBJECT_DESTROYED (activity_handler))
|
||||
return;
|
||||
|
||||
priv = activity_handler->priv;
|
||||
|
||||
p = lookup_activity (priv->activity_infos, activity_id, &order_number);
|
||||
@ -490,6 +502,13 @@ impl_requestDialog (PortableServer_Servant servant,
|
||||
const GNOME_Evolution_Activity_DialogType dialog_type,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
EActivityHandler *activity_handler;
|
||||
|
||||
activity_handler = E_ACTIVITY_HANDLER (bonobo_object_from_servant (servant));
|
||||
|
||||
if (GTK_OBJECT_DESTROYED (activity_handler))
|
||||
return;
|
||||
|
||||
/* FIXME implement. */
|
||||
g_warning ("Evolution::Activity::requestDialog not implemented");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user