diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2015-03-04 11:52:16 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2015-03-04 13:27:03 +0100 |
commit | 6449e5bb6dd1f09678e09164ef21f455132af98f (patch) | |
tree | 5df5de09520652db63ff405744ec645c71ddfdcf /vcl/source/window/syswin.cxx | |
parent | 1855ffeb9108d443deb1d0b6806a18908a5935b1 (diff) |
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
Diffstat (limited to 'vcl/source/window/syswin.cxx')
-rw-r--r-- | vcl/source/window/syswin.cxx | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx index 5c953f3df449..dde7bc9e4032 100644 --- a/vcl/source/window/syswin.cxx +++ b/vcl/source/window/syswin.cxx @@ -109,6 +109,9 @@ SystemWindow::~SystemWindow() maLayoutIdle.Stop(); delete mpImplData; 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 ) |