summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2020-02-20 14:17:19 +0100
committerMichael Stahl <michael.stahl@cib.de>2020-02-25 12:19:51 +0100
commit1d46d4d8f76791817e73663838d41860390f03eb (patch)
treeaa6f19f6ffc722f79588a85ea639ddf284d7d590
parent4f19b5b55d592621826e9904d3f4c5d48f52ee0f (diff)
tdf#129529 sw_redlinehide: infinite loop in SwLayHelper::CheckInsert()
The bugdoc has this in meta.xml: meta:page-count="819" meta:paragraph-count="302" ... for which SwLayHelper::CalcPageCount() cunningly estimates a maximum of 0 paragraphs per page, and at that rate an infinite number of pages are required... Not sure what a reasonable minimum should be, paragraphs could be 16 pages long even with 64k limit, but it does appear unlikely. (regression from 7e8b4756d95057f069467b34e7849f9354856578 which disabled the use of the layout-cache in the bugdoc) Change-Id: Icd9ab145cc2f0714b50de9b5b4a1ef10ac1d49a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89106 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit a9f2f4b4c9e1fa4e4c4a69517c31d0b8e2063f01) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89133 Tested-by: Michael Stahl <michael.stahl@cib.de>
-rw-r--r--sw/source/core/layout/laycache.cxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/sw/source/core/layout/laycache.cxx b/sw/source/core/layout/laycache.cxx
index 2d6e23c6fe49..a70de2657c86 100644
--- a/sw/source/core/layout/laycache.cxx
+++ b/sw/source/core/layout/laycache.cxx
@@ -598,7 +598,9 @@ sal_uLong SwLayHelper::CalcPageCount()
if ( nNdCount > 100 ) // no estimation below this value
{
if ( nPgCount > 0 )
- mnMaxParaPerPage = nNdCount / nPgCount;
+ { // tdf#129529 avoid 0...
+ mnMaxParaPerPage = std::max<sal_uLong>(3, nNdCount / nPgCount);
+ }
else
{
mnMaxParaPerPage = std::max( sal_uLong(20),