summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-09-02 15:13:33 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-09-02 16:04:58 +0000
commit7785e87aa9fc706b1474e6a480affca067542f5d (patch)
tree08c2f2e3c3d17824ad425ade8645fb64d477fd3b /sw
parent13a0e48dd49ec811e41aaa03c3009b9a4f92bf30 (diff)
detect if new offsets are the same as the previous ones and avoid loop
Change-Id: I4c53d4bce9a69d79e34bdd634c296d9b495e1904 (cherry picked from commit 137cf76573c89ea1b0b1f716a50731419a187473) Reviewed-on: https://gerrit.libreoffice.org/18275 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/ww8/ww8par2.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
index f214746c1bde..64df102a2d31 100644
--- a/sw/source/filter/ww8/ww8par2.cxx
+++ b/sw/source/filter/ww8/ww8par2.cxx
@@ -414,6 +414,8 @@ bool SwWW8ImplReader::SearchRowEnd(WW8PLCFx_Cp_FKP* pPap, WW8_CP &rStartCp,
WW8PLCFxDesc aRes;
aRes.pMemPos = 0;
aRes.nEndPos = rStartCp;
+ bool bReadRes(false);
+ WW8PLCFxDesc aPrevRes;
while (pPap->HasFkp() && rStartCp != WW8_CP_MAX)
{
@@ -446,6 +448,13 @@ bool SwWW8ImplReader::SearchRowEnd(WW8PLCFx_Cp_FKP* pPap, WW8_CP &rStartCp,
}
pPap->GetSprms(&aRes);
pPap->SetDirty(false);
+ if (bReadRes && aRes.nEndPos == aPrevRes.nEndPos && aRes.nStartPos == aPrevRes.nStartPos)
+ {
+ SAL_WARN("sw.ww8", "SearchRowEnd, loop in paragraph property chain");
+ break;
+ }
+ bReadRes = true;
+ aPrevRes = aRes;
//Update our aRes to get the new starting point of the next properties
rStartCp = aRes.nEndPos;
}