summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-09-29 10:25:48 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-09-29 11:10:33 +0100
commita0c42a13de26d5b5cf070b452ebf93b831e0916d (patch)
tree6761524c653a7295d45efa059f5f785b435c7b53 /svx
parent2f50e9008040c4ff4c4fa516f784f0ae3624534e (diff)
coverity#1325071 Resource leak
Change-Id: If045233eeb0d8f6fab89dff4c4307a3b8bde5a92
Diffstat (limited to 'svx')
-rw-r--r--svx/source/svdraw/svdotxed.cxx12
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 */