[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - sfx2/source

Markus Mohrhard markus.mohrhard at googlemail.com
Tue Aug 9 10:44:21 UTC 2016


 sfx2/source/appl/workwin.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit 152de33c612f219471c96975f4ab6fd24d95dc1b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Aug 8 05:36:59 2016 +0200

    no range based for loop when container is modified, tdf#100870, tdf#101320
    
    This crash has been responsible for around 20% of the 5.2.0.4 crashes
    with backtraces for the modification of the container similar to:
    
        sxlo.dll!SfxWorkWindow::SetChildWindowVisible_Impl(unsigned long lId, bool bEnabled, unsigned short nMode) Line 1834    C++
         sfxlo.dll!SfxDispatcher::Update_Impl_(bool bUIActive, bool bIsMDIApp, bool bIsIPOwner, SfxWorkWindow * pTaskWin) Line 1452    C++
         sfxlo.dll!SfxDispatcher::Update_Impl(bool bForce) Line 1326    C++
         sfxlo.dll!SfxApplication::SetViewFrame_Impl(SfxViewFrame * pFrame) Line 372    C++
         sfxlo.dll!SfxViewFrame::SetViewFrame(SfxViewFrame * pFrame) Line 3138    C++
         sfxlo.dll!SfxViewFrame::MakeActive_Impl(bool bGrabFocus) Line 1697    C++
         sfxlo.dll!SfxFrameWindow_Impl::Notify(NotifyEvent & rNEvt) Line 111    C++
         vcllo.dll!vcl::Window::CompatNotify(NotifyEvent & rNEvt) Line 3747    C++
         vcllo.dll!vcl::Window::Notify(NotifyEvent & rNEvt) Line 198    C++
         vcllo.dll!DockingWindow::Notify(NotifyEvent & rNEvt) Line 633    C++
         vcllo.dll!vcl::Window::CompatNotify(NotifyEvent & rNEvt) Line 3747    C++
         vcllo.dll!vcl::Window::Notify(NotifyEvent & rNEvt) Line 198    C++
         vcllo.dll!DockingWindow::Notify(NotifyEvent & rNEvt) Line 633    C++
         sfxlo.dll!SfxDockingWindow::Notify(NotifyEvent & rEvt) Line 1655    C++
         vcllo.dll!vcl::Window::CompatNotify(NotifyEvent & rNEvt) Line 3747    C++
         vcllo.dll!vcl::Window::Notify(NotifyEvent & rNEvt) Line 198    C++
         vcllo.dll!vcl::Window::CompatNotify(NotifyEvent & rNEvt) Line 3747    C++
         vcllo.dll!vcl::Window::Notify(NotifyEvent & rNEvt) Line 198    C++
         vcllo.dll!vcl::Window::CompatNotify(NotifyEvent & rNEvt) Line 3747    C++
         vcllo.dll!vcl::Window::Notify(NotifyEvent & rNEvt) Line 198    C++
         vcllo.dll!Control::Notify(NotifyEvent & rNEvt) Line 274    C++
         vcllo.dll!vcl::Window::CompatNotify(NotifyEvent & rNEvt) Line 3747    C++
         vcllo.dll!vcl::Window::GetFocus() Line 1842    C++
         svtlo.dll!SvTreeListBox::GetFocus() Line 2096    C++
         swlo.dll!SwContentTree::GetFocus() Line 2571    C++
         vcllo.dll!vcl::Window::CompatGetFocus() Line 3716    C++
         vcllo.dll!vcl::Window::ImplGrabFocus(GetFocusFlags nFlags) Line 384    C++
         vcllo.dll!vcl::Window::GrabFocus() Line 3004    C++
         swlo.dll!SwNavigationPI::SwNavigationPI(SfxBindings * _pBindings, SfxChildWindowContext * pCw, vcl::Window * pParent) Line 835    C++
         swlo.dll!VclPtr<SwNavigationPI>::Create<SfxBindings * __ptr64 & __ptr64,SwNavigationChild * __ptr64 const,vcl::Window * __ptr64 & __ptr64>(SfxBinsfdings * & <arg_0>, SwNavigationChild * const && <arg_1>, vcl::Window * & <arg_2>) Line 131    C++
         swlo.dll!SwNavigationChild::SwNavigationChild(vcl::Window * pParent, unsigned short nId, SfxBindings * _pBindings, SfxChildWinInfo * __formal) Line 1306    C++
         swlo.dll!SwNavigationChild::CreateImpl(vcl::Window * pParent, SfxBindings * pBindings, SfxChildWinInfo * pInfo) Line 69    C++
         sfxlo.dll!SfxChildWindow::CreateContext(unsigned short nContextId, SfxBindings & rBindings) Line 457    C++
         sfxlo.dll!SfxWorkWindow::CreateChildWin_Impl(SfxChildWin_Impl * pCW, bool bSetFocus) Line 1436    C++
         sfxlo.dll!SfxWorkWindow::UpdateChildWindows_Impl() Line 1328    C++
         sfxlo.dll!SfxWorkWindow::UpdateObjectBars_Impl() Line 1283    C++
         sfxlo.dll!SfxFrameWorkWin_Impl::UpdateObjectBars_Impl() Line 1114    C++
         sfxlo.dll!SfxDispatcher::Update_Impl(bool bForce) Line 1329    C++
         sfxlo.dll!SfxBaseController::ConnectSfxFrame_Impl(const SfxBaseController::ConnectSfxFrame i_eConnect) Line 1326    C++
         sfxlo.dll!SfxBaseController::attachFrame(const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & xFrame) Line 584    C++
         sfxlo.dll!`anonymous namespace'::SfxFrameLoader_Impl::impl_createDocumentView(const com::sun::star::uno::Reference<com::sun::star::frame::XModel2> & i_rModel, const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & i_rFrame, const comphelper::NamedValueCollection & i_rViewFactoryArgs, const rtl::OUString & i_rViewName) Line 604    C++
         sfxlo.dll!`anonymous namespace'::SfxFrameLoader_Impl::load(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & rArgs, const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & _rTargetFrame) Line 721    C++
         fwklo.dll!framework::LoadEnv::impl_loadContent() Line 1122    C++
         fwklo.dll!framework::LoadEnv::startLoading() Line 379    C++
         fwklo.dll!framework::LoadDispatcher::impl_dispatch(const com::sun::star::util::URL & rURL, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments, const com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> & xListener) Line 116    C++
         fwklo.dll!framework::LoadDispatcher::dispatch(const com::sun::star::util::URL & aURL, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments) Line 55    C++
         sfxlo.dll!RecentDocsView::ExecuteHdl_Impl(RecentDocsView * __formal, void * p) Line 335    C++
         sfxlo.dll!RecentDocsView::LinkStubExecuteHdl_Impl(void * instance, void * data) Line 327    C++
         vcllo.dll!Link<void * __ptr64,void>::Call(void * data) Line 84    C++
         vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 1949    C++
         vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const void * pEvent) Line 2497    C++
         vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line 282    C++
         vcllo.dll!ImplHandleUserEvent(HWND__ * hWnd, __int64 lParam) Line 4110    C++
         vcllo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, int & rDef) Line 5774    C++
         vcllo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 5907    C++
         [External Code]
         vcllo.dll!ImplSalDispatchMessage(tagMSG * pMsg) Line 572    C++
         vcllo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 591    C++
         vcllo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, unsigned __int64 nReleased) Line 654    C++
         vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents, const unsigned __int64 nReleased) Line 510    C++
         vcllo.dll!Application::Yield() Line 556    C++
         vcllo.dll!Application::Execute() Line 472    C++
         sofficeapp.dll!desktop::Desktop::DoExecute() Line 1327    C++
         sofficeapp.dll!desktop::Desktop::Main() Line 1646    C++
         vcllo.dll!ImplSVMain() Line 177    C++
         vcllo.dll!SVMain() Line 216    C++
         sofficeapp.dll!soffice_main() Line 165    C++
         soffice.bin!sal_main() Line 48    C
         soffice.bin!main(int argc, char * * argv) Line 47    C
         soffice.bin!WinMain(void * _hinst, void * _dummy, char * _cmdline, int _nshow) Line 47    C
         [External Code]
    
    Change-Id: I4f699952d144a9c276ce53604dc66418abc4baee
    Reviewed-on: https://gerrit.libreoffice.org/27977
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    (cherry picked from commit b0f4291e5c0fe6d61d621e692cbc8bea4cb4c401)
    Reviewed-on: https://gerrit.libreoffice.org/27985
    Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>

diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index 537405c..eb0f079 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -1291,8 +1291,9 @@ void SfxWorkWindow::UpdateObjectBars_Impl()
 void SfxWorkWindow::UpdateChildWindows_Impl()
 {
     // any current or in the context available Childwindows
-    for (SfxChildWin_Impl* pCW : aChildWins)
+    for ( size_t n=0; n<aChildWins.size(); n++ )
     {
+        SfxChildWin_Impl *pCW = aChildWins[n];
         SfxChildWindow *pChildWin = pCW->pWin;
         bool bCreate = false;
         if ( pCW->nId && !pCW->bDisabled  && (pCW->aInfo.nFlags & SfxChildWindowFlags::ALWAYSAVAILABLE || IsVisible_Impl( pCW->nVisibility ) ) )


More information about the Libreoffice-commits mailing list