Re: [g-a-devel]Gail Crashes



Marc Mulcahy wrote:

...

> 1. We cache the object which had the focus before the menubar got it so we
> can fake a focus event to it after the menu bar is deactivated.  And, if
> that object happens to be gone, as a result of clicking the "exit
> application" menu item for example, we understandably blow up all the way
> through the stack.

Marc:

It strikes me that this, since we are sending events asynchronously, 
is going to happen sometimes (i.e. focus event received for dead object)
no matter what.  It's not clear to me that this needs to be a fatal
error;
if it is, then we have a problem.  So I think the right approach is to
recover from this condition sanely when it occurs...

In other words recipients of events should not blow up if the "source"
object is gone.  Note that the Accessibility_Accessible object should
not have been destroyed since the event carries a reference which is
only
decremented after receipt of the event, so the issue is calling API
on the "defunct" object.  It seems that the client needs to either check
the
state of the object to see if it's "defunct" or not (which means we 
must report this state correctly), or else it needs to gracefully
recover from the CORBA errors which occur when calling API on a defunct
object.

-Bill



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]