Re: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented
- From: "Quiring, Sam" <Sam Quiring windriver com>
- To: <gnome-accessibility-devel gnome org>
- Subject: Re: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented
- Date: Wed, 18 Mar 2009 08:05:05 -0700
Greetings,
We have an Accessibility *handle to an Application
object (role = SPI_ROLE_APPLICATION). We called
Accessible_ref(handle). At some time while we have this handle, the user
kills the application with the mouse.
We have introduced a routine,
isAccessibleDead(Accessible *handle), where we try to determine if the object
still exists by examining its state. During this testing, we get a
segfault, most likely from Accessible_getStateSet(handle). We have
exception handlers around this code and if we get a segfault we conclude the
object is indeed dead. Our accessibility app continues to
execute.
At a later time, if the user clicks on
any buried window on the desktop to bring it to the top, our
accessibility app gets the segfault shown in the email
below.
So here's my question: What is the correct AT-SPI
algorithm for determining that an Application object is
gone?
When the user kills the
application, our app gets a window:deactivate
event and a window:destroy event for the only direct child of
Application object, an SPI_ROLE_FRAME object. My best guess for
the algorithm is "if I receive a window:destroy for the frame of an
application, mark the application as dead. Never use the Accessible
*handle after that." Is that the it?
It is a bug that we are getting a segfault when we call
Accessible_getStateSet() on a ref'd Accessible *value,
right?
-Sam
Greetings,
Does anyone know
what this message means:
** (process:9316):
WARNING **: FIXME: wait for completion unimplemented
It comes out on the
console of my Accessibility app near the same time as the stack dump shown
below. This stack dump does not contain any code from my accessibility app
-- I cause it to happen by switching among windows on my
desktop. Any clues about what is going on here would be greatly
appreciated.
-Sam
Stack
Dump (the top frame was called by the 2nd frame,
etc.)
TCF 49:24.522:
/usr/lib/libcspi.so.0 [0xb790e969]
TCF 49:24.522: /usr/lib/libcspi.so.0
[0xb790abe2]
TCF 49:24.523: /usr/lib/libcspi.so.0 [0xb790f1b2]
TCF
49:24.523: /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__POINTER+0x5a)
[0xb7a300ba]
TCF 49:24.523: /usr/lib/libgobject-2.0.so.0 [0xb7a22079]
TCF
49:24.523: /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x129)
[0xb7a23759]
TCF 49:24.523: /usr/lib/libgobject-2.0.so.0 [0xb7a3811a]
TCF
49:24.523: /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8ef)
[0xb7a39c1f]
TCF 49:24.523: /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)
[0xb7a39f69]
TCF 49:24.523: /usr/lib/libspi.so.0 [0xb794fb2f]
TCF
49:24.523:
/usr/lib/libspi.so.0(_ORBIT_skel_small_Accessibility_EventListener_notifyEvent+0x1f)
[0xb794202f]
TCF 49:24.523: /usr/lib/libORBit-2.so.0 [0xb738a5c7]
TCF
49:24.523: /usr/lib/libORBit-2.so.0(ORBit_OAObject_invoke+0x35)
[0xb73907b5]
TCF 49:24.523:
/usr/lib/libORBit-2.so.0(ORBit_small_invoke_adaptor+0x4d0) [0xb737d910]
TCF
49:24.523: /usr/lib/libORBit-2.so.0 [0xb738e424]
TCF 49:24.523:
/usr/lib/libORBit-2.so.0 [0xb738eaa2]
TCF 49:24.523:
/usr/lib/libORBit-2.so.0(giop_thread_queue_process+0xad) [0xb73763dd]
TCF
49:24.523: /usr/lib/libORBit-2.so.0
[0xb7376b26]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]