https://bugs.documentfoundation.org/show_bug.cgi?id=71409
--- Comment #27 from Michael Meeks <[email protected]> --- The AtkListener: https://bug-attachments.documentfoundation.org/attachment.cgi?id=120291 is leaked through this trace as you see; thanks for that. It seems like the problem is the AtkObjectWrapper we have holds this context: css::uno::Reference<css::accessibility::XAccessibleContext> mpContext; We then connect an AtkListener to another interface on this Context: AtkObject * atk_object_wrapper_new( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxAccessible, AtkObject* parent ) ... // Attach a listener to the UNO object if it's not TRANSIENT ... uno::Reference< accessibility::XAccessibleEventBroadcaster > xBroadcaster(xContext, uno::UNO_QUERY); if( xBroadcaster.is() ) xBroadcaster->addAccessibleEventListener( static_cast< accessibility::XAccessibleEventListener * > ( new AtkListener(pWrap) ) ); So - now we have the object that we hold a reference on - that holds a reference to the new AtkListener UNO object - which (in turn) holds a GObject reference to us (ie. the pWrap AtkObjectWrapper). I -imagine- that therein lines the reference loop & the problem =) --- Comment #28 from Michael Meeks <[email protected]> --- The AtkListener: https://bug-attachments.documentfoundation.org/attachment.cgi?id=120291 is leaked through this trace as you see; thanks for that. It seems like the problem is the AtkObjectWrapper we have holds this context: css::uno::Reference<css::accessibility::XAccessibleContext> mpContext; We then connect an AtkListener to another interface on this Context: AtkObject * atk_object_wrapper_new( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxAccessible, AtkObject* parent ) ... // Attach a listener to the UNO object if it's not TRANSIENT ... uno::Reference< accessibility::XAccessibleEventBroadcaster > xBroadcaster(xContext, uno::UNO_QUERY); if( xBroadcaster.is() ) xBroadcaster->addAccessibleEventListener( static_cast< accessibility::XAccessibleEventListener * > ( new AtkListener(pWrap) ) ); So - now we have the object that we hold a reference on - that holds a reference to the new AtkListener UNO object - which (in turn) holds a GObject reference to us (ie. the pWrap AtkObjectWrapper). I -imagine- that therein lines the reference loop & the problem =) -- 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
