[Libreoffice-commits] .: editeng/source
Kohei Yoshida
kohei at kemper.freedesktop.org
Mon Jul 2 10:28:31 PDT 2012
editeng/source/editeng/impedit3.cxx | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
New commits:
commit 6cf78c72be5f8f1b0a037b03a6fc63cbace0a2d9
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date: Mon Jul 2 13:27:52 2012 -0400
fdo#51582: Avoid double deletion of a text portion.
Change-Id: Ia1c31cc8122c99a7e37bc285f61f8c5d2779b577
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 3a5ac2b..504d774 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -896,18 +896,19 @@ sal_Bool ImpEditEngine::CreateLines( sal_uInt16 nPara, sal_uInt32 nStartPosY )
{
// Throw away a Portion, if necessary correct the one before,
// if the Hyph portion has swallowed a character ...
+ sal_uInt16 nTmpLen = pPortion->GetLen();
pParaPortion->GetTextPortions().Remove( nTmpPortion );
- if ( nTmpPortion && pPortion->GetLen() )
+ if (nTmpPortion && nTmpLen)
{
nTmpPortion--;
TextPortion* pPrev = pParaPortion->GetTextPortions()[nTmpPortion];
DBG_ASSERT( pPrev->GetKind() == PORTIONKIND_TEXT, "Portion?!" );
nTmpWidth -= pPrev->GetSize().Width();
nTmpPos = nTmpPos - pPrev->GetLen();
- pPrev->SetLen( pPrev->GetLen() + pPortion->GetLen() );
+ pPrev->SetLen(pPrev->GetLen() + nTmpLen);
pPrev->GetSize().Width() = (-1);
}
- delete pPortion;
+
DBG_ASSERT( nTmpPortion < pParaPortion->GetTextPortions().Count(), "No more Portions left!" );
pPortion = pParaPortion->GetTextPortions()[nTmpPortion];
}
More information about the Libreoffice-commits
mailing list