To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=99010





------- Additional comments from arie...@openoffice.org Sun Feb  8 15:13:28 
+0000 2009 -------
A little explanation about the crash and the proposed patch.

On a non-product build is very easy to follow the stack: 

basically VCLXWindow::dispose checks if the Window is still
alive
(http://svn.services.openoffice.org/opengrok/xref/DEV300_m40/toolkit/source/awt/vclxwindow.cxx#1135);
if so, DestroyOutputDevice() starts the process of destroying it.
When an AWT menu bar has been set on the window, all ends in a life time issue:
in a non-product build, the vcl Window
(http://svn.services.openoffice.org/opengrok/xref/DEV300_m40/vcl/source/window/window.cxx#4492)
informs us about a
living child window; and OOo will "abort in non-pro version".

The crash can be avoid from the client code by setting a null css.awt.XMenuBar
on the top window *before* invoking css.lang.XComponent::dispose on the
css.awt.XWindow: 

VCLXTopWindow_Base::setMenuBar
(http://svn.services.openoffice.org/opengrok/xref/DEV300_m40/toolkit/source/awt/vclxtopwindow.cxx#151)
will always invoke (before even testing if the reference is empty)
SystemWindow::SetMenuBar with a NULL arg., and this makes SystemWindow ensure
that MenuBar::ImplDestroy is called to destroy the menu bar
(http://svn.services.openoffice.org/opengrok/xref/DEV300_m40/vcl/source/window/syswin.cxx#933)


To avoid life-time issues with the MenuBar, one has to ensure
MenuBar::ImplDestroy is called, and you can do so by setting a NULL MenuBar: the
LayoutManager does so in LayoutManager::impl_clearUpMenuBar
(http://svn.services.openoffice.org/opengrok/xref/DEV300_m40/framework/source/layoutmanager/layoutmanager.cxx#514).


So the proposed patch adds a flag to track when an AWT MenuBar has been set on
the AWT XTopWindow. If so, a NULL MenuBar is set on VCLXTopWindow::dispose() in
order to solve the life-time issue.

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@api.openoffice.org
For additional commands, e-mail: issues-h...@api.openoffice.org


---------------------------------------------------------------------
To unsubscribe, e-mail: allbugs-unsubscr...@openoffice.org
For additional commands, e-mail: allbugs-h...@openoffice.org

Reply via email to