|
 |
ebc4bd |
From 37469a1e3eb5b3295f5b496e27fc6f0445699339 Mon Sep 17 00:00:00 2001
|
|
 |
ebc4bd |
From: Michael Stahl <mstahl@redhat.com>
|
|
 |
ebc4bd |
Date: Wed, 22 Apr 2015 14:28:38 +0200
|
|
 |
ebc4bd |
Subject: [PATCH] rhbz#1198848: sw: delete *all* table redlines to fix DOCX
|
|
 |
ebc4bd |
import crash
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
SwExtraRedlineTbl::DeleteAllTableRedlines() increments its position even
|
|
 |
ebc4bd |
when deleting the current element from the vector.
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
(cherry picked from commit 28764d7ed5df874c2bfbc6025a97968e08cf2315)
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
Conflicts:
|
|
 |
ebc4bd |
sw/source/core/doc/docredln.cxx
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
Change-Id: Ie827a7b66fa9690bbabaf53204e9ec77247239f2
|
|
 |
ebc4bd |
---
|
|
 |
ebc4bd |
sw/source/core/doc/docredln.cxx | 24 ++++++++++++++----------
|
|
 |
ebc4bd |
1 file changed, 14 insertions(+), 10 deletions(-)
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
|
|
 |
ebc4bd |
index cb1520a..f7cdc7f 100644
|
|
 |
ebc4bd |
--- a/sw/source/core/doc/docredln.cxx
|
|
 |
ebc4bd |
+++ b/sw/source/core/doc/docredln.cxx
|
|
 |
ebc4bd |
@@ -1529,7 +1529,7 @@ bool SwExtraRedlineTbl::DeleteAllTableRedlines( SwDoc* pDoc, const SwTable& rTab
|
|
 |
ebc4bd |
*/
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
- for(sal_uInt16 nCurRedlinePos = 0; nCurRedlinePos < GetSize(); ++nCurRedlinePos )
|
|
 |
ebc4bd |
+ for (sal_uInt16 nCurRedlinePos = 0; nCurRedlinePos < GetSize(); )
|
|
 |
ebc4bd |
{
|
|
 |
ebc4bd |
SwExtraRedline* pExtraRedline = GetRedline(nCurRedlinePos);
|
|
 |
ebc4bd |
const SwTableCellRedline* pTableCellRedline = dynamic_cast<const SwTableCellRedline*>(pExtraRedline);
|
|
 |
ebc4bd |
@@ -1544,11 +1544,12 @@ bool SwExtraRedlineTbl::DeleteAllTableRedlines( SwDoc* pDoc, const SwTable& rTab
|
|
 |
ebc4bd |
sal_uInt16 nRedlineType = aRedlineData.GetType();
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
// Check if this redline object type should be deleted
|
|
 |
ebc4bd |
- if( USHRT_MAX != nRedlineTypeToDelete && nRedlineTypeToDelete != nRedlineType )
|
|
 |
ebc4bd |
- continue;
|
|
 |
ebc4bd |
-
|
|
 |
ebc4bd |
- DeleteAndDestroy( nCurRedlinePos );
|
|
 |
ebc4bd |
- bChg = true;
|
|
 |
ebc4bd |
+ if (USHRT_MAX == nRedlineTypeToDelete || nRedlineTypeToDelete == nRedlineType)
|
|
 |
ebc4bd |
+ {
|
|
 |
ebc4bd |
+ DeleteAndDestroy( nCurRedlinePos );
|
|
 |
ebc4bd |
+ bChg = true;
|
|
 |
ebc4bd |
+ continue; // don't increment position after delete
|
|
 |
ebc4bd |
+ }
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
else
|
|
 |
ebc4bd |
@@ -1566,14 +1567,17 @@ bool SwExtraRedlineTbl::DeleteAllTableRedlines( SwDoc* pDoc, const SwTable& rTab
|
|
 |
ebc4bd |
sal_uInt16 nRedlineType = aRedlineData.GetType();
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
// Check if this redline object type should be deleted
|
|
 |
ebc4bd |
- if( USHRT_MAX != nRedlineTypeToDelete && nRedlineTypeToDelete != nRedlineType )
|
|
 |
ebc4bd |
- continue;
|
|
 |
ebc4bd |
+ if (USHRT_MAX == nRedlineTypeToDelete || nRedlineTypeToDelete == nRedlineType)
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
- DeleteAndDestroy( nCurRedlinePos );
|
|
 |
ebc4bd |
- bChg = true;
|
|
 |
ebc4bd |
+ {
|
|
 |
ebc4bd |
+ DeleteAndDestroy( nCurRedlinePos );
|
|
 |
ebc4bd |
+ bChg = true;
|
|
 |
ebc4bd |
+ continue; // don't increment position after delete
|
|
 |
ebc4bd |
+ }
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
+ ++nCurRedlinePos;
|
|
 |
ebc4bd |
}
|
|
 |
ebc4bd |
|
|
 |
ebc4bd |
if( bChg )
|
|
 |
ebc4bd |
--
|
|
 |
ebc4bd |
2.1.0
|
|
 |
ebc4bd |
|