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

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

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

SwFrm::InvalidatePage(SwPageFrm const*)
SwFlyFrm::DeleteCnt()
SwFlyFrm::~SwFlyFrm()
SwFlyInCntFrm::~SwFlyInCntFrm()
SwFrmFmt::DelFrms()
SwUndoFlyBase::DelFly(SwDoc*)
SwUndoDelLayFmt::SwUndoDelLayFmt(SwFrmFmt*)
SwHistoryTxtFlyCnt::SwHistoryTxtFlyCnt(SwFrmFmt*)
SwHistory::Add(SwTxtAttr*, unsigned long, bool)
SwUndoSaveCntnt::DelCntntIndex(SwPosition const&, SwPosition const&, unsigned short)
SwUndoDelete::SwUndoDelete(SwPaM&, bool, bool)
sw::DocumentContentOperationsManager::DeleteRangeImplImpl(SwPaM&)
sw::DocumentContentOperationsManager::DeleteRangeImpl(SwPaM&, bool)
sw::DocumentContentOperationsManager::DeleteAndJoinImpl(SwPaM&, bool)
(anonymous namespace)::lcl_DoWithBreaks(sw::DocumentContentOperationsManager&, SwPaM&, bool (sw::DocumentContentOperationsManager::*)(SwPaM&, bool), bool)
sw::DocumentContentOperationsManager::DeleteAndJoin(SwPaM&, bool)
SwEditShell::DeleteSel(SwPaM&, bool*)
SwEditShell::Delete()
...

Change-Id: I6e3d7f3ab9f11a46324826201bc1af9a2d3a88cb
üst 5a934b2c
...@@ -48,6 +48,10 @@ SwFlyInCntFrm::~SwFlyInCntFrm() ...@@ -48,6 +48,10 @@ SwFlyInCntFrm::~SwFlyInCntFrm()
SwRect aTmp( GetObjRectWithSpaces() ); SwRect aTmp( GetObjRectWithSpaces() );
SwFlyInCntFrm::NotifyBackground( FindPageFrm(), aTmp, PREP_FLY_LEAVE ); SwFlyInCntFrm::NotifyBackground( FindPageFrm(), aTmp, PREP_FLY_LEAVE );
} }
// Hack to make sure code called from base ~SwFlyFrm does not interpret this
// as a SwFlyFrm (which it no longer is by then):
mnFrmType = FRM_UNUSED;
} }
// #i28701# // #i28701#
......
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