JunitTest_framework_complex fails reliably for me on current master with
assertion
assert( mpWindowContext.is() );
failing at OpenGLSalGraphicsImpl::doFlush().
I could debug it to WinOpenGLContext::ImplInit() having m_aGLWin.hDC ==
nullptr, thus ChoosePixelFormat fails. The call stack for this point is
====
vclplug_winlo.dll!WinOpenGLSalGraphicsImpl::CreateWinContext
vcllo.dll!OpenGLSalGraphicsImpl::doFlush
vcllo.dll!OpenGLFlushIdle::Invoke
vcllo.dll!Scheduler::ProcessTaskScheduling
vcllo.dll!Scheduler::CallbackTaskScheduling
vcllo.dll!SalTimer::CallCallback
vclplug_winlo.dll!WinSalTimer::ImplHandleElapsedTimer
vclplug_winlo.dll!ImplSalYield
vclplug_winlo.dll!WinSalInstance::DoYield
vcllo.dll!ImplYield
vcllo.dll!Application::Yield
vcllo.dll!Application::Execute
sofficeapp.dll!desktop::Desktop::Main
vcllo.dll!ImplSVMain
vcllo.dll!SVMain
sofficeapp.dll!soffice_main
soffice.bin!sal_main
soffice.bin!main
soffice.bin!invoke_main
soffice.bin!__scrt_common_main_seh
soffice.bin!__scrt_common_main
soffice.bin!mainCRTStartup
kernel32.dll!BaseThreadInitThunk
ntdll.dll!RtlUserThreadStart
====
The mrWinParent.mhLocalDC is nullptr here; the nullprt value has been
set when it was released *before that event* in
WinSalFrame::ReleaseFrameGraphicsDC with this call stack:
====
vclplug_winlo.dll!WinSalGraphics::setHDC
vclplug_winlo.dll!WinSalFrame::ReleaseFrameGraphicsDC
vclplug_winlo.dll!WinSalFrame::ReleaseGraphics
vcllo.dll!vcl::Window::ReleaseGraphics
vcllo.dll!vcl::Window::dispose
vcllo.dll!ImplBorderWindow::dispose
vcllo.dll!VclReferenceBase::disposeOnce
vcllo.dll!VclPtr<vcl::Window>::disposeAndClear
vcllo.dll!vcl::Window::dispose
vcllo.dll!Control::dispose
vcllo.dll!Edit::dispose
vcllo.dll!SpinField::dispose
vcllo.dll!MetricField::dispose
vcllo.dll!VclReferenceBase::disposeOnce
vcllo.dll!VclPtr<vcl::Window>::disposeAndClear
vcllo.dll!VclBuilder::disposeBuilder
vcllo.dll!VclBuilderContainer::disposeBuilder
svxlo.dll!PanelLayout::dispose
svxlo.dll!svx::sidebar::ParaPropertyPanel::dispose
vcllo.dll!VclReferenceBase::disposeOnce
sfxlo.dll!VclPtr<vcl::Window>::disposeAndClear
sfxlo.dll!sfx2::sidebar::SidebarPanelBase::disposing
cppuhelper3MSC.dll!cppu::WeakComponentImplHelperBase::dispose
sfxlo.dll!cppu::PartialWeakComponentImplHelper<com::sun::star::ui::XContextChangeEventListener,com::sun::star::ui::XUIElement,com::sun::star::ui::XToolPanel,com::sun::star::ui::XSidebarPanel,com::sun::star::ui::XUpdateModel>::dispose
sfxlo.dll!sfx2::sidebar::Panel::dispose
vcllo.dll!VclReferenceBase::disposeOnce
sfxlo.dll!VclPtr<sfx2::sidebar::Panel>::disposeAndClear
sfxlo.dll!sfx2::sidebar::Deck::ResetPanels
sfxlo.dll!sfx2::sidebar::SidebarController::CreatePanels
sfxlo.dll!sfx2::sidebar::SidebarController::CreateDeck
sfxlo.dll!sfx2::sidebar::SidebarController::SwitchToDeck
sfxlo.dll!sfx2::sidebar::SidebarController::SwitchToDeck
sfxlo.dll!sfx2::sidebar::SidebarController::UpdateConfigurations
sfxlo.dll!sfx2::sidebar::SidebarController::notifyContextChangeEvent
fwklo.dll!`anonymous
namespace'::ContextChangeEventMultiplexer::BroadcastEventToSingleContainer
fwklo.dll!`anonymous
namespace'::ContextChangeEventMultiplexer::broadcastContextChangeEvent
sfxlo.dll!sfx2::sidebar::ContextChangeBroadcaster::BroadcastContextChange
sfxlo.dll!sfx2::sidebar::ContextChangeBroadcaster::Activate
sfxlo.dll!SfxShell::BroadcastContextForActivation
swlo.dll!SwPagePreview::SwPagePreview
swlo.dll!SwPagePreview::CreateInstance
sfxlo.dll!SfxViewFactory::CreateInstance
sfxlo.dll!SfxBaseModel::createViewController
sfxlo.dll!`anonymous
namespace'::SfxFrameLoader_Impl::impl_createDocumentView
sfxlo.dll!`anonymous namespace'::SfxFrameLoader_Impl::load
fwklo.dll!framework::LoadEnv::impl_loadContent
fwklo.dll!framework::LoadEnv::startLoading
fwklo.dll!framework::LoadEnv::loadComponentFromURL
fwklo.dll!`anonymous namespace'::Frame::loadComponentFromURL
sfxlo.dll!SfxViewFrame::LoadViewIntoFrame_Impl
sfxlo.dll!SfxViewFrame::SwitchToViewShell_Impl
sfxlo.dll!SfxViewFrame::ExecView_Impl
sfxlo.dll!SfxStubSfxViewFrameExecView_Impl
sfxlo.dll!SfxShell::CallExec
sfxlo.dll!SfxDispatcher::Call_Impl
sfxlo.dll!SfxDispatcher::PostMsgHandler
sfxlo.dll!std::_Invoker_pmf_pointer::_Call<void (__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *
&,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> > >
sfxlo.dll!std::invoke<void (__cdecl
SfxDispatcher::*&)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *
&,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> > >
sfxlo.dll!std::_Invoker_ret<std::_Unforced,0>::_Call<void (__cdecl
SfxDispatcher::*&)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *
&,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> > >
sfxlo.dll!std::_Call_binder<std::_Unforced,0,1,void (__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),std::tuple<SfxDispatcher *,std::_Ph<1>
,std::tuple<std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
&&> >
sfxlo.dll!std::_Binder<std::_Unforced,void (__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *,std::_Ph<1> const
&>::operator()<std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
sfxlo.dll!std::_Invoker_functor::_Call<std::_Binder<std::_Unforced,void
(__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *,std::_Ph<1> const &>
&,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> > >
sfxlo.dll!std::invoke<std::_Binder<std::_Unforced,void (__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *,std::_Ph<1> const &>
&,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> > >
sfxlo.dll!std::_Invoker_ret<void,1>::_Call<std::_Binder<std::_Unforced,void (__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> >),SfxDispatcher
*,std::_Ph<1> const &> &,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> > >
sfxlo.dll!std::_Func_impl_no_alloc<std::_Binder<std::_Unforced,void
(__cdecl
SfxDispatcher::*)(std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
),SfxDispatcher *,std::_Ph<1> const
&>,void,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest> >
::_Do_call
sfxlo.dll!std::_Func_class<void,std::unique_ptr<SfxRequest,std::default_delete<SfxRequest>
::operator()
sfxlo.dll!SfxHintPoster::DoEvent_Impl
sfxlo.dll!SfxHintPoster::LinkStubDoEvent_Impl
vcllo.dll!Link<void *,void>::Call
vcllo.dll!ImplHandleUserEvent
vcllo.dll!ImplWindowFrameProc
vcllo.dll!SalFrame::CallCallback
vclplug_winlo.dll!ImplHandleUserEvent
vclplug_winlo.dll!SalFrameWndProc
vclplug_winlo.dll!SalFrameWndProcW
user32.dll!UserCallWinProcCheckWow
user32.dll!CallWindowProcW
opengl32.dll!wglWndProc
user32.dll!UserCallWinProcCheckWow
user32.dll!DispatchMessageWorker
vclplug_winlo.dll!ImplSalDispatchMessage
vclplug_winlo.dll!ImplSalYield
vclplug_winlo.dll!SalComWndProc
vclplug_winlo.dll!SalComWndProcW
user32.dll!UserCallWinProcCheckWow
user32.dll!DispatchClientMessage
user32.dll!__fnDWORD
ntdll.dll!KiUserCallbackDispatcherContinue
win32u.dll!NtUserPeekMessage
user32.dll!_PeekMessage
user32.dll!PeekMessageW
vclplug_winlo.dll!ImplSalYield
vclplug_winlo.dll!WinSalInstance::DoYield
vcllo.dll!ImplYield
vcllo.dll!Application::Yield
vcllo.dll!Application::Execute
sofficeapp.dll!desktop::Desktop::Main
vcllo.dll!ImplSVMain
vcllo.dll!SVMain
sofficeapp.dll!soffice_main
soffice.bin!sal_main
soffice.bin!main
soffice.bin!invoke_main
soffice.bin!__scrt_common_main_seh
soffice.bin!__scrt_common_main
soffice.bin!mainCRTStartup
kernel32.dll!BaseThreadInitThunk
ntdll.dll!RtlUserThreadStart
====
So the question is why there's apparently an attempt to use window after
it was disposed; and how to properly prevent it.
--
Best regards,
Mike Kaganski
Context
- Failing JunitTest_framework_complex · Kaganski Mike
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.