summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/qa/extras/layout/data/forcepoint89.htmlbin0 -> 3321 bytes
-rw-r--r--sw/qa/extras/layout/data/forcepoint91.htmlbin0 -> 49256 bytes
-rw-r--r--sw/qa/extras/layout/data/tdf147485-forcepoint.docbin0 -> 62544 bytes
-rw-r--r--sw/qa/extras/layout/layout.cxx23
-rw-r--r--sw/source/core/layout/tabfrm.cxx2
5 files changed, 25 insertions, 0 deletions
diff --git a/sw/qa/extras/layout/data/forcepoint89.html b/sw/qa/extras/layout/data/forcepoint89.html
new file mode 100644
index 000000000000..7998a2b0b979
--- /dev/null
+++ b/sw/qa/extras/layout/data/forcepoint89.html
Binary files differ
diff --git a/sw/qa/extras/layout/data/forcepoint91.html b/sw/qa/extras/layout/data/forcepoint91.html
new file mode 100644
index 000000000000..eacbd2e05ab8
--- /dev/null
+++ b/sw/qa/extras/layout/data/forcepoint91.html
Binary files differ
diff --git a/sw/qa/extras/layout/data/tdf147485-forcepoint.doc b/sw/qa/extras/layout/data/tdf147485-forcepoint.doc
new file mode 100644
index 000000000000..cb630efb8717
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf147485-forcepoint.doc
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 81c1eb53e716..ec7b4fd00a02 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -37,6 +37,7 @@ public:
void testForcepoint90();
void testForcepoint92();
void testForcepoint93();
+ void testTdf147485Forcepoint();
void testTdf118058();
void testTdf117188();
void testTdf119875();
@@ -62,6 +63,7 @@ public:
CPPUNIT_TEST(testForcepoint90);
CPPUNIT_TEST(testForcepoint92);
CPPUNIT_TEST(testForcepoint93);
+ CPPUNIT_TEST(testTdf147485Forcepoint);
CPPUNIT_TEST(testTdf118058);
CPPUNIT_TEST(testTdf117188);
CPPUNIT_TEST(testTdf119875);
@@ -262,6 +264,14 @@ void SwLayoutWriter::testTdf109137()
void SwLayoutWriter::testForcepoint76() { createDoc("forcepoint76-1.rtf"); }
//just care it doesn't crash/assert
+#if 0 // no createSwWebDoc
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testForcepoint89)
+{
+ createSwWebDoc(DATA_DIRECTORY, "forcepoint89.html");
+}
+#endif
+
+//just care it doesn't crash/assert
void SwLayoutWriter::testN4LA0OHZ() { createDoc("LIBREOFFICE-N4LA0OHZ.rtf"); }
// FIXME: apparently infinite loop on Mac
@@ -275,6 +285,13 @@ void SwLayoutWriter::testForcepoint90()
createDoc("forcepoint90.rtf");
}
+#if 0 // no createSwWebDoc
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testForcepoint91)
+{
+ createSwWebDoc(DATA_DIRECTORY, "forcepoint91.html");
+}
+#endif
+
//just care it doesn't crash/assert
void SwLayoutWriter::testForcepoint92() { createDoc("forcepoint92.doc"); }
@@ -293,6 +310,12 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testForcepoint94)
}
#endif
+//just care it doesn't crash/assert
+void SwLayoutWriter::testTdf147485Forcepoint()
+{
+ createDoc("tdf147485-forcepoint.doc");
+}
+
void SwLayoutWriter::testTdf118058()
{
SwDoc* pDoc = createDoc("tdf118058.fodt");
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 82e6e4d32bf9..8da20ee2f3ea 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -1559,6 +1559,8 @@ static bool lcl_InnerCalcLayout( SwFrame *pFrame,
if ( pFrame->IsLayoutFrame() &&
( !_bOnlyRowsAndCells || pFrame->IsRowFrame() || pFrame->IsCellFrame() ) )
{
+ SwFrameDeleteGuard aDeleteGuard(pFrame);
+
// #130744# An invalid locked table frame will
// not be calculated => It will not become valid =>
// Loop in lcl_RecalcRow(). Therefore we do not consider them for bRet.