[Libreoffice-bugs] [Bug 47368] Many crashes when accessibility enabled on MacOS X

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jul 12 19:59:43 CEST 2012


https://bugs.freedesktop.org/show_bug.cgi?id=47368

--- Comment #32 from Michael Meeks <michael.meeks at novell.com> 2012-07-12 10:59:43 PDT ---
The amazing thing is that the hitTestRunner code does:


        if ( rxAccessibleComponent.is() ) {
            com::sun::star::awt::Point location = rxAccessibleComponent ->
getLocationOnScreen();
            com::sun::star::awt::Point hitPoint ( point.X - location.X ,
point.Y - location.Y); 
            Reference < XAccessible > rxAccessible = rxAccessibleComponent ->
getAccessibleAtPoint ( hitPoint );

And:

awt::Point SAL_CALL ValueSetAcc::getLocationOnScreen()
    throw (uno::RuntimeException)
{
    ThrowIfDisposed();
    const SolarMutexGuard aSolarGuard;
    const Point         aScreenPos( mpParent->OutputToAbsoluteScreenPixel(
Point() ) );
    awt::Point          aRet;

    aRet.X = aScreenPos.X();
    aRet.Y = aScreenPos.Y();


Which must be called immediately beforehand - and is -much- more complex and
invasive, fails to crash :-) which is where I'd expect problems to occur if
anywhere.

So - continuing on the basis that the stack-trace is busted, and that in fact
it is getLocationOnScreen that crashes de-referencing mpParent - then ...

it is rather unclear to me how, if the ValueSet is destroyed, the ValueSetAcc
get it's mpParent pointer cleaned up. I'd expect to have the dispose method do
that, but ... no sign of that.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Libreoffice-bugs mailing list