diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-09-29 10:25:48 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-09-29 11:10:33 +0100 |
commit | a0c42a13de26d5b5cf070b452ebf93b831e0916d (patch) | |
tree | 6761524c653a7295d45efa059f5f785b435c7b53 /svx | |
parent | 2f50e9008040c4ff4c4fa516f784f0ae3624534e (diff) |
coverity#1325071 Resource leak
Change-Id: If045233eeb0d8f6fab89dff4c4307a3b8bde5a92
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/svdraw/svdotxed.cxx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index 4e070276ae6d..149a1bbc6bdf 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -278,8 +278,6 @@ void SdrTextObj::TakeTextEditArea(Size* pPaperMin, Size* pPaperMax, Rectangle* p void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) { - OutlinerParaObject* pNewText = NULL; - if(rOutl.IsModified()) { @@ -287,7 +285,8 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) rOutl.UpdateFields(); sal_Int32 nParaAnz = rOutl.GetParagraphCount(); - pNewText = rOutl.CreateParaObject( 0, nParaAnz ); + bool bNewTextTransferred = false; + OutlinerParaObject* pNewText = rOutl.CreateParaObject( 0, nParaAnz ); // need to end edit mode early since SetOutlinerParaObject already // uses GetCurrentBoundRect() which needs to take the text into account @@ -298,10 +297,17 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) if (IsChainable() && GetTextChain()->GetSwitchingToNextBox(this)) { GetTextChain()->SetSwitchingToNextBox(this, false); if( getActiveText() ) + { getActiveText()->SetOutlinerParaObject( pNewText); + bNewTextTransferred = true; + } } else { // If we are not doing in-chaining switching just set the ParaObject SetOutlinerParaObject(pNewText); + bNewTextTransferred = true; } + + if (!bNewTextTransferred) + delete pNewText; } /* Beginning Chaining-related code */ |