summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-04-02 20:28:15 +0100
committerCaolán McNamara <caolanm@redhat.com>2022-04-02 22:43:16 +0200
commitf628a7dbae3f74eb1c0823f0fac79ee64f5a4952 (patch)
treec41c999926cc7787161bdc1e6caa6c8788a262b8 /sw
parentcf01ebf64634a014ca73bb7c042f6516123ae4eb (diff)
forcepoint#100 drop SwBorderAttrAccess to allow cache entry to be removed
for SwBorderAttr which gets deleted during this call Change-Id: Ie52aab7e5933d76b0c055389798104e4d93f39e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132460 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/layout/data/forcepoint100.htmlbin0 -> 21531 bytes
-rw-r--r--sw/qa/extras/layout/layout.cxx6
-rw-r--r--sw/source/core/layout/tabfrm.cxx7
3 files changed, 13 insertions, 0 deletions
diff --git a/sw/qa/extras/layout/data/forcepoint100.html b/sw/qa/extras/layout/data/forcepoint100.html
new file mode 100644
index 000000000000..6e9b83a6c95e
--- /dev/null
+++ b/sw/qa/extras/layout/data/forcepoint100.html
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 39b0b48876f6..02185383cc32 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2536,6 +2536,12 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf147485Forcepoint)
createSwDoc(DATA_DIRECTORY, "tdf147485-forcepoint.doc");
}
+//just care it doesn't crash/assert
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testForcepoint100)
+{
+ createSwWebDoc(DATA_DIRECTORY, "forcepoint100.html");
+}
+
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf118058)
{
SwDoc* pDoc = createSwDoc(DATA_DIRECTORY, "tdf118058.fodt");
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 210d69582992..8825280cd628 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -2170,7 +2170,14 @@ void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext)
setFramePrintAreaValid(false);
Format( getRootFrame()->GetCurrShell()->GetOut(), pAttrs );
}
+
+ oAccess.reset();
+
lcl_RecalcTable( *this, nullptr, aNotify );
+
+ oAccess.emplace(SwFrame::GetCache(), this);
+ pAttrs = oAccess->Get();
+
m_bLowersFormatted = true;
if ( bKeep && KEEPTAB )
{