sw/qa/extras/odfimport/data/tdf165156.odt |binary
 sw/qa/extras/odfimport/odfimport.cxx      |    7 +++++++
 sw/source/core/layout/tabfrm.cxx          |    2 +-
 3 files changed, 8 insertions(+), 1 deletion(-)

New commits:
commit a9bf303dfb348265edf7c2c61fc3b8a6511fd5df
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Sun Jul 13 17:27:09 2025 +0500
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Mon Jul 14 14:48:18 2025 +0200

    tdf#165156: limit hack for tdf#161508 even more
    
    Make oscillation detection only happen when !bSplitError, to not
    interfere with handling of the latter.
    
    Change-Id: I6c54e5026ba700522121f36a3e4fc5b91c37b2e4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187801
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    Tested-by: Jenkins
    (cherry picked from commit 8946628f0ce28d111c9dfcfbd73e30afac32c157)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187841
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/qa/extras/odfimport/data/tdf165156.odt 
b/sw/qa/extras/odfimport/data/tdf165156.odt
new file mode 100644
index 000000000000..060b3a7598a8
Binary files /dev/null and b/sw/qa/extras/odfimport/data/tdf165156.odt differ
diff --git a/sw/qa/extras/odfimport/odfimport.cxx 
b/sw/qa/extras/odfimport/odfimport.cxx
index f0f1905fd232..eac93ea1a926 100644
--- a/sw/qa/extras/odfimport/odfimport.cxx
+++ b/sw/qa/extras/odfimport/odfimport.cxx
@@ -1676,6 +1676,13 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf167329)
     // This must succeed
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf165156)
+{
+    // This used to hang after loading
+    createSwDoc("tdf165156.odt");
+    // This must succeed
+}
+
 } // end of anonymous namespace
 CPPUNIT_PLUGIN_IMPLEMENT();
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index c3fffa454f47..31d778f06692 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -3129,7 +3129,7 @@ void SwTabFrame::MakeAll(vcl::RenderContext* 
pRenderContext)
                     // to nDeadLine may not be enough.
                     // tdf#161508 hack: treat oscillation likewise
                     if ((bSplitError && bTryToSplit) // no restart if we did 
not try to split: i72847, i79426
-                        || 
posSizeOscillationControl.OscillationDetected(*this))
+                        || (!bSplitError && 
posSizeOscillationControl.OscillationDetected(*this)))
                     {
                         lcl_RecalcRow(*static_cast<SwRowFrame*>(Lower()), 
LONG_MAX);
                         setFrameAreaPositionValid(false);

Reply via email to