https://bugs.documentfoundation.org/show_bug.cgi?id=94715

--- Comment #10 from Michael Meeks <[email protected]> ---
Tested and couldn't reproduce on Linux/master with dbgutil - which is annoying.
Had a quick read around the code, and could see several problems; with
reasonably easy fixes - but without knowing which one is the nasty - its really
not clear what to do.

It seems pretty clear that:

      pVCLXindow->GetWindow()->AddEventListener( LINK( this,
VCLXAccessibleComponent, WindowEventListener ) );

is called - then then 'this' is deleted (cf. trace) - and then we get another
event with an invalid this.

I imagine that by the time we delete this:

VCLXAccessibleComponent::~VCLXAccessibleComponent()
...
    if ( mpVCLXindow && mpVCLXindow->GetWindow() )
        mpVCLXindow->GetWindow()->RemoveEventListener( LINK( this,
VCLXAccessibleComponent, WindowEventListener ) );

no longer has a window to remove itself from. Not very safe that pattern.

The band-aid is to just store a VclPtr to the window to remove ourselves from -
which should be rather safe; but ...

https://gerrit.libreoffice.org/21088

testing appreciated etc. =)

-- 
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