Kaydet (Commit) 6449e5bb authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Hack to make an in-destruction SystemWindow no longer claim to be one

as observed by -fsanitize=vptr e.g. during CppunitTest_sc_macros_test (though
the true fix might be to prevent all this from happening during ~SystemWindow
anyway?):

vcl::ImplGetLastSystemWindow(vcl::Window*)
vcl::Window::SetParent(vcl::Window*)
vcl::Window::doLazyDelete()
UnoWrapper::WindowDestroyed(vcl::Window*)
vcl::Window::~Window()
SystemWindow::~SystemWindow()
WorkWindow::~WorkWindow()
VCLXDevice::DestroyOutputDevice()
VCLXWindow::dispose()
(anonymous namespace)::Frame::impl_disposeContainerWindow(com::sun::star::uno::Reference<com::sun::star::awt::XWindow>&)
(anonymous namespace)::Frame::dispose()
(anonymous namespace)::Frame::close(unsigned char)
non-virtual thunk to (anonymous namespace)::Frame::close(unsigned char)
SfxFrame::DoClose()
...

Change-Id: I91495eaa3cb2c636fd093ae7eb8b6ae4733002bb
üst 1855ffeb
...@@ -109,6 +109,9 @@ SystemWindow::~SystemWindow() ...@@ -109,6 +109,9 @@ SystemWindow::~SystemWindow()
maLayoutIdle.Stop(); maLayoutIdle.Stop();
delete mpImplData; delete mpImplData;
mpImplData = NULL; mpImplData = NULL;
// Hack to make sure code called from base ~Window does not interpret this
// as a SystemWindow (which it no longer is by then):
mpWindowImpl->mbSysWin = false;
} }
bool SystemWindow::Notify( NotifyEvent& rNEvt ) bool SystemWindow::Notify( NotifyEvent& rNEvt )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment