Re: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented



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
 
 

From: gnome-accessibility-devel-bounces gnome org [mailto:gnome-accessibility-devel-bounces gnome org] On Behalf Of Quiring, Sam
Sent: Tuesday, March 17, 2009 4:15 PM
To: gnome-accessibility-devel gnome org
Subject: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented

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]