• Julien Nabet's avatar
    Resolves fdo#80906: Delete any control on Dialog editing window crashes LO · e1840cf9
    Julien Nabet yazdı
    Quick fix for this bt:
    3  0x00002aaaab2935d2 in __GI___assert_fail (assertion=0x2aaae1f2806a "_pInterface != 0",
        file=0x2aaae1f28018 "/home/julien/compile-libreoffice/libreoffice/include/com/sun/star/uno/Reference.h", line=402,
        function=0x2aaae1f28480 <com::sun::star::uno::Reference<com::sun::star::resource::XStringResourceManager>::operator->() const::__PRETTY_FUNCTION__> "interface_type* com::sun::star::uno::Reference< <template-parameter-1-1> >::operator->() const [with interface_type = com::sun::star::resource::XStringResourceManager]") at assert.c:101
    4  0x00002aaae1e2963b in com::sun::star::uno::Reference<com::sun::star::resource::XStringResourceManager>::operator-> (this=0x7fffffff2d00)
        at /home/julien/compile-libreoffice/libreoffice/include/com/sun/star/uno/Reference.h:402
    5  0x00002aaae1eb5c87 in basctl::LocalizationMgr::implHandleControlResourceProperties (aControlAny=
        uno::Any {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x8935ea8}, <No data fields>}, aDialogName="Dialog1", aCtrlName="TextField1",
        xStringResourceManager=empty uno::Reference, xSourceStringResolver=empty uno::Reference, eMode=basctl::LocalizationMgr::REMOVE_IDS_FROM_RESOURCE)
        at /home/julien/compile-libreoffice/libreoffice/basctl/source/basicide/localizationmgr.cxx:202
    6  0x00002aaae1eb92a0 in basctl::LocalizationMgr::deleteControlResourceIDsForDeletedEditorObject (pEditor=0x919d820, aControlAny=
        uno::Any {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x8935ea8}, <No data fields>}, aCtrlName="TextField1")
        at /home/julien/compile-libreoffice/libreoffice/basctl/source/basicide/localizationmgr.cxx:896
    Indeed, LocalizationMgr::setControlResourceIDsForNewEditorObject just returns if !xStringResourceManager.is()
    So let's do the same when trying to delete ControlResources
    See http://opengrok.libreoffice.org/xref/core/basctl/source/basicide/localizationmgr.cxx#835
    
    Change-Id: I4be49503cd2464f97a25840dfdc29877e5fb2b93
    e1840cf9
localizationmgr.cxx 46.2 KB