summaryrefslogtreecommitdiff
path: root/sw/source/filter/html/htmlflywriter.cxx
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2019-08-09 18:43:36 +0200
committerCaolán McNamara <caolanm@redhat.com>2019-08-10 12:38:08 +0200
commit3c367de9893b1e2d352585a42cbbd25052bb7376 (patch)
tree02045c4f68150560374b5e90a37d11fc0cf4de9b /sw/source/filter/html/htmlflywriter.cxx
parentba61c3174bc24bc03e3f72fbc8d102b3312b5ff6 (diff)
sw: fix ~SwIndexReg asserts on ODF export of ooo83072-1.odt
It is now possible that the stupid redline-moving code deletes the first node in the document, and there are 2 SwPaM that point to it, Writer::m_pCurrentPam and local pPam in SwWriter::Write(). So i thought it should be quite trivial to just use SwUnoCursors in these cases, but it required a bit more keyboard bashing than expected. (regression from beec1594587d0bf1ea2268f9a435c948b5580278, which i didn't really intend to push and am not sure if it's really a good idea but whatever...) Change-Id: Ia5c18d67af8760664517a4b7ee62ef3e4a417686 Reviewed-on: https://gerrit.libreoffice.org/77225 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/filter/html/htmlflywriter.cxx')
-rw-r--r--sw/source/filter/html/htmlflywriter.cxx9
1 files changed, 5 insertions, 4 deletions
diff --git a/sw/source/filter/html/htmlflywriter.cxx b/sw/source/filter/html/htmlflywriter.cxx
index 6eca6c22fb7c..c50f46acaa8d 100644
--- a/sw/source/filter/html/htmlflywriter.cxx
+++ b/sw/source/filter/html/htmlflywriter.cxx
@@ -298,7 +298,8 @@ void SwHTMLWriter::CollectFlyFrames()
OSL_ENSURE( HTML_CFG_MAX+1 == MAX_BROWSERS,
"number of browser configurations has changed" );
- SwPosFlyFrames aFlyPos(m_pDoc->GetAllFlyFormats(m_bWriteAll ? nullptr : m_pCurrentPam, true));
+ SwPosFlyFrames aFlyPos(
+ m_pDoc->GetAllFlyFormats(m_bWriteAll ? nullptr : m_pCurrentPam.get(), true));
for(const auto& rpItem : aFlyPos)
{
@@ -1639,7 +1640,7 @@ static Writer & OutHTML_FrameFormatAsMulticol( Writer& rWrt,
pSttNd->EndOfSectionIndex(),
true, &rFrameFormat );
rHTMLWrt.m_bOutFlyFrame = true;
- rHTMLWrt.Out_SwDoc( rWrt.m_pCurrentPam );
+ rHTMLWrt.Out_SwDoc( rWrt.m_pCurrentPam.get() );
}
rHTMLWrt.DecIndentLevel(); // indent the content of Multicol;
@@ -1726,7 +1727,7 @@ static Writer& OutHTML_FrameFormatAsDivOrSpan( Writer& rWrt,
pSttNd->EndOfSectionIndex(),
true, &rFrameFormat );
rHTMLWrt.m_bOutFlyFrame = true;
- rHTMLWrt.Out_SwDoc( rWrt.m_pCurrentPam );
+ rHTMLWrt.Out_SwDoc( rWrt.m_pCurrentPam.get() );
}
rHTMLWrt.DecIndentLevel(); // indent the content of Multicol;
@@ -2000,7 +2001,7 @@ Writer& OutHTML_HeaderFooter( Writer& rWrt, const SwFrameFormat& rFrameFormat,
else
rHTMLWrt.m_bOutFooter = true;
- rHTMLWrt.Out_SwDoc( rWrt.m_pCurrentPam );
+ rHTMLWrt.Out_SwDoc( rWrt.m_pCurrentPam.get() );
}
if( bHeader && !aSpacer.isEmpty() )