Kaydet (Commit) 6d0ea082 authored tarafından Caolán McNamara's avatar Caolán McNamara

forcepoint73 deleted SwAnchoredObject still referenced in TmpConsiderWrapInfl

Change-Id: If255723834d049865fcf6fd0eac7768dfcbad2a1
Reviewed-on: https://gerrit.libreoffice.org/58760
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst f1b5a236
...@@ -411,6 +411,7 @@ class SW_DLLPUBLIC SwAnchoredObject ...@@ -411,6 +411,7 @@ class SW_DLLPUBLIC SwAnchoredObject
// accessors to member <mbTmpConsiderWrapInfluence> // accessors to member <mbTmpConsiderWrapInfluence>
void SetTmpConsiderWrapInfluence( const bool _bTmpConsiderWrapInfluence ); void SetTmpConsiderWrapInfluence( const bool _bTmpConsiderWrapInfluence );
bool IsTmpConsiderWrapInfluence() const { return mbTmpConsiderWrapInfluence;} bool IsTmpConsiderWrapInfluence() const { return mbTmpConsiderWrapInfluence;}
void ClearTmpConsiderWrapInfluence();
/** method to determine, if the anchored object is overlapping with a /** method to determine, if the anchored object is overlapping with a
previous column previous column
......
...@@ -128,6 +128,10 @@ public: ...@@ -128,6 +128,10 @@ public:
static void InsertObjForTmpConsiderWrapInfluence( static void InsertObjForTmpConsiderWrapInfluence(
const SwDoc& _rDoc, const SwDoc& _rDoc,
SwAnchoredObject& _rAnchoredObj ); SwAnchoredObject& _rAnchoredObj );
static void RemoveObjForTmpConsiderWrapInfluence(
const SwDoc& _rDoc,
SwAnchoredObject& _rAnchoredObj );
// --> #i65250# // --> #i65250#
static bool MoveBwdSuppressed( const SwDoc& p_rDoc, static bool MoveBwdSuppressed( const SwDoc& p_rDoc,
const SwFlowFrame& p_rFlowFrame, const SwFlowFrame& p_rFlowFrame,
......
...@@ -748,7 +748,14 @@ void SwAnchoredObject::SetTmpConsiderWrapInfluence( const bool _bTmpConsiderWrap ...@@ -748,7 +748,14 @@ void SwAnchoredObject::SetTmpConsiderWrapInfluence( const bool _bTmpConsiderWrap
} }
} }
void SwAnchoredObject::ClearTmpConsiderWrapInfluence()
{
mbTmpConsiderWrapInfluence = false;
mbClearedEnvironment = false;
SetClearedEnvironment( false );
SwLayouter::RemoveObjForTmpConsiderWrapInfluence( *(GetFrameFormat().GetDoc()),
*this );
}
void SwAnchoredObject::SetTmpConsiderWrapInfluenceOfOtherObjs() void SwAnchoredObject::SetTmpConsiderWrapInfluenceOfOtherObjs()
{ {
const SwSortedObjs* pObjs = GetAnchorFrame()->GetDrawObjs(); const SwSortedObjs* pObjs = GetAnchorFrame()->GetDrawObjs();
......
...@@ -392,6 +392,7 @@ void SwLayouter::ClearObjsTmpConsiderWrapInfluence( const SwDoc& _rDoc ) ...@@ -392,6 +392,7 @@ void SwLayouter::ClearObjsTmpConsiderWrapInfluence( const SwDoc& _rDoc )
_rDoc.getIDocumentLayoutAccess().GetLayouter()->mpObjsTmpConsiderWrapInfl->Clear(); _rDoc.getIDocumentLayoutAccess().GetLayouter()->mpObjsTmpConsiderWrapInfl->Clear();
} }
} }
void SwLayouter::InsertObjForTmpConsiderWrapInfluence( void SwLayouter::InsertObjForTmpConsiderWrapInfluence(
const SwDoc& _rDoc, const SwDoc& _rDoc,
SwAnchoredObject& _rAnchoredObj ) SwAnchoredObject& _rAnchoredObj )
...@@ -410,6 +411,20 @@ void SwLayouter::InsertObjForTmpConsiderWrapInfluence( ...@@ -410,6 +411,20 @@ void SwLayouter::InsertObjForTmpConsiderWrapInfluence(
_rDoc.getIDocumentLayoutAccess().GetLayouter()->mpObjsTmpConsiderWrapInfl->Insert( _rAnchoredObj ); _rDoc.getIDocumentLayoutAccess().GetLayouter()->mpObjsTmpConsiderWrapInfl->Insert( _rAnchoredObj );
} }
void SwLayouter::RemoveObjForTmpConsiderWrapInfluence(
const SwDoc& _rDoc,
SwAnchoredObject& _rAnchoredObj )
{
if ( !_rDoc.getIDocumentLayoutAccess().GetLayouter() )
return;
if ( !_rDoc.getIDocumentLayoutAccess().GetLayouter()->mpObjsTmpConsiderWrapInfl )
return;
_rDoc.getIDocumentLayoutAccess().GetLayouter()->mpObjsTmpConsiderWrapInfl->Remove( _rAnchoredObj );
}
void LOOPING_LOUIE_LIGHT( bool bCondition, const SwTextFrame& rTextFrame ) void LOOPING_LOUIE_LIGHT( bool bCondition, const SwTextFrame& rTextFrame )
{ {
if ( bCondition ) if ( bCondition )
......
...@@ -31,23 +31,18 @@ SwObjsMarkedAsTmpConsiderWrapInfluence::~SwObjsMarkedAsTmpConsiderWrapInfluence( ...@@ -31,23 +31,18 @@ SwObjsMarkedAsTmpConsiderWrapInfluence::~SwObjsMarkedAsTmpConsiderWrapInfluence(
void SwObjsMarkedAsTmpConsiderWrapInfluence::Insert( SwAnchoredObject& _rAnchoredObj ) void SwObjsMarkedAsTmpConsiderWrapInfluence::Insert( SwAnchoredObject& _rAnchoredObj )
{ {
auto it = std::find(maObjsTmpConsiderWrapInfl.begin(), maObjsTmpConsiderWrapInfl.end(), &_rAnchoredObj);
if (it != maObjsTmpConsiderWrapInfl.end())
return;
maObjsTmpConsiderWrapInfl.push_back( &_rAnchoredObj );
}
bool bAlreadyInserted( false ); void SwObjsMarkedAsTmpConsiderWrapInfluence::Remove( SwAnchoredObject& _rAnchoredObj )
std::vector< SwAnchoredObject* >::const_iterator aIter = maObjsTmpConsiderWrapInfl.begin(); {
for ( ; aIter != maObjsTmpConsiderWrapInfl.end(); ++aIter ) auto it = std::find(maObjsTmpConsiderWrapInfl.begin(), maObjsTmpConsiderWrapInfl.end(), &_rAnchoredObj);
{ if (it == maObjsTmpConsiderWrapInfl.end())
const SwAnchoredObject* pAnchoredObj = *aIter; return;
if ( pAnchoredObj == &_rAnchoredObj ) maObjsTmpConsiderWrapInfl.erase(it);
{
bAlreadyInserted = true;
break;
}
}
if ( !bAlreadyInserted )
{
maObjsTmpConsiderWrapInfl.push_back( &_rAnchoredObj );
}
} }
void SwObjsMarkedAsTmpConsiderWrapInfluence::Clear() void SwObjsMarkedAsTmpConsiderWrapInfluence::Clear()
......
...@@ -33,6 +33,7 @@ class SwObjsMarkedAsTmpConsiderWrapInfluence ...@@ -33,6 +33,7 @@ class SwObjsMarkedAsTmpConsiderWrapInfluence
~SwObjsMarkedAsTmpConsiderWrapInfluence(); ~SwObjsMarkedAsTmpConsiderWrapInfluence();
void Insert( SwAnchoredObject& _rAnchoredObj ); void Insert( SwAnchoredObject& _rAnchoredObj );
void Remove( SwAnchoredObject& _rAnchoredObj );
void Clear(); void Clear();
}; };
......
...@@ -475,6 +475,7 @@ void SwLayoutFrame::DestroyImpl() ...@@ -475,6 +475,7 @@ void SwLayoutFrame::DestroyImpl()
const size_t nCnt = pFrame->GetDrawObjs()->size(); const size_t nCnt = pFrame->GetDrawObjs()->size();
// #i28701# // #i28701#
SwAnchoredObject* pAnchoredObj = (*pFrame->GetDrawObjs())[0]; SwAnchoredObject* pAnchoredObj = (*pFrame->GetDrawObjs())[0];
pAnchoredObj->ClearTmpConsiderWrapInfluence();
if (SwFlyFrame* pFlyFrame = dynamic_cast<SwFlyFrame*>(pAnchoredObj)) if (SwFlyFrame* pFlyFrame = dynamic_cast<SwFlyFrame*>(pAnchoredObj))
{ {
SwFrame::DestroyFrame(pFlyFrame); SwFrame::DestroyFrame(pFlyFrame);
......
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