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

--- Comment #32 from Michael Meeks <[email protected]> 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.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to