[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf |binary writerfilter/source/dmapper/DomainMapper_Impl.cxx|2 +- 2 files changed, 1 insertion(+), 1 deletion(-) New commits: commit 03be54fd1cdb9319c2898100423507781d2ce7cb Author: Caolán McNamaraDate: Sat Sep 10 13:46:47 2016 +0100 fftester: no table manager Change-Id: I033454670d1ee662bc80bc07578690155d97ce28 Reviewed-on: https://gerrit.libreoffice.org/28806 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf new file mode 100644 index 000..67a0ea1 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 6bbef8d..24049b1 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -1221,7 +1221,7 @@ void DomainMapper_Impl::appendTextPortion( const OUString& rString, const Proper if( pPropertyMap == m_pTopContext && !deferredCharacterProperties.empty() && (GetTopContextType() == CONTEXT_CHARACTER) ) processDeferredCharacterProperties(); uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; -if(xTextAppend.is() && ! getTableManager( ).isIgnore()) +if (xTextAppend.is() && hasTableManager() && !getTableManager().isIgnore()) { try { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf |binary writerfilter/source/rtftok/rtfdocumentimpl.cxx |8 writerfilter/source/rtftok/rtfdocumentimpl.hxx |3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) New commits: commit 68be1d3a8964d548a0113fe28a70e09349ddd0d7 Author: Caolán McNamaraDate: Sat Sep 10 11:47:16 2016 +0100 fftester: use of deleted RTFParserState but we only use the RTFParserState to use its m_pDocumentImpl and the m_pDocumentImpl is never changed for the RTFParserState lifetime, so take the m_pDocumentImpl at ctor time instead and use that directly later Change-Id: I15152e3f6d9008553b4a384a5e5da21373904cc9 Reviewed-on: https://gerrit.libreoffice.org/28803 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf new file mode 100644 index 000..3fe4b28 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf differ diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 53f3fc2..a1df2d0 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -3291,7 +3291,7 @@ RTFDrawingObject::RTFDrawingObject() } RTFFrame::RTFFrame(RTFParserState* pParserState) -: m_pParserState(pParserState), +: m_pDocumentImpl(pParserState->m_pDocumentImpl), m_nX(0), m_nY(0), m_nW(0), @@ -3309,10 +3309,10 @@ RTFFrame::RTFFrame(RTFParserState* pParserState) void RTFFrame::setSprm(Id nId, Id nValue) { -if (m_pParserState->m_pDocumentImpl->getFirstRun() && !m_pParserState->m_pDocumentImpl->isStyleSheetImport()) +if (m_pDocumentImpl->getFirstRun() && !m_pDocumentImpl->isStyleSheetImport()) { -m_pParserState->m_pDocumentImpl->checkFirstRun(); -m_pParserState->m_pDocumentImpl->setNeedPar(false); +m_pDocumentImpl->checkFirstRun(); +m_pDocumentImpl->setNeedPar(false); } switch (nId) { diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 32bbe4a..062cae2 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -182,12 +182,13 @@ public: }; class RTFParserState; +class RTFDocumentImpl; /// Stores the properties of a frame class RTFFrame { private: -RTFParserState* m_pParserState; +RTFDocumentImpl* m_pDocumentImpl; sal_Int32 m_nX, m_nY, m_nW, m_nH; sal_Int32 m_nHoriPadding, m_nVertPadding; sal_Int32 m_nHoriAlign, m_nHoriAnchor, m_nVertAlign, m_nVertAnchor; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf |binary writerfilter/source/rtftok/rtfdispatchsymbol.cxx |3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) New commits: commit f810ca3d93f392fe4523dd58400b79f62bf8862f Author: Caolán McNamaraDate: Tue Sep 6 15:57:30 2016 +0100 fftester: missing ValueLast Change-Id: I8e881871b1ae4dea757263d04796779e62e168dc Reviewed-on: https://gerrit.libreoffice.org/28694 Reviewed-by: jan iversen Tested-by: jan iversen diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf new file mode 100644 index 000..847e165 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf differ diff --git a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx index 218810b..966a0b7 100644 --- a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx +++ b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx @@ -243,7 +243,8 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) if ((m_nCellxMax - m_nTopLevelCurrentCellX) >= MINLAY) { auto pXValueLast = m_aStates.top().aTableRowSprms.find(NS_ooxml::LN_CT_TblGridBase_gridCol, false); -auto pXValue = std::make_shared(pXValueLast->getInt() + m_nCellxMax - m_nTopLevelCurrentCellX); +const int nXValueLast = pXValueLast ? pXValueLast->getInt() : 0; +auto pXValue = std::make_shared(nXValueLast + m_nCellxMax - m_nTopLevelCurrentCellX); m_aStates.top().aTableRowSprms.eraseLast(NS_ooxml::LN_CT_TblGridBase_gridCol); m_aStates.top().aTableRowSprms.set(NS_ooxml::LN_CT_TblGridBase_gridCol, pXValue, RTFOverwrite::NO_APPEND); m_nTopLevelCurrentCellX = m_nCellxMax; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf |binary writerfilter/source/dmapper/PropertyMap.cxx|2 +- 2 files changed, 1 insertion(+), 1 deletion(-) New commits: commit 96e76028ef33e6617d702f07a0ad4a485db50f11 Author: Caolán McNamaraDate: Fri Sep 2 21:12:43 2016 +0100 fftester: apparent wrong property tested for existence Change-Id: I5d208bb2a85d7aa4eea9b1c950eeb6f35493f759 (cherry picked from commit a42f4aaba352a4d33ce77898e7b7b7bc0c10f1f8) Reviewed-on: https://gerrit.libreoffice.org/28630 Tested-by: Jenkins Reviewed-by: Michael Stahl diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf new file mode 100644 index 000..130ff3f Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf differ diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 5bc56b8..ac192e6 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1247,7 +1247,7 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl ) if( pEntry.get( ) ) { boost::optional pPropHeight = pEntry->pProperties->getProperty(PROP_CHAR_HEIGHT_ASIAN); -if(pProp) +if (pPropHeight) { double fHeight = 0; if( pPropHeight->second >>= fHeight ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-2.rtf |binary writerfilter/source/dmapper/DomainMapper.cxx |3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) New commits: commit 8cba5e9bd27c0ac92c9ea68522352551505187c6 Author: Caolán McNamaraDate: Sat Aug 27 13:31:14 2016 +0100 fftester: topcontext check Change-Id: I2045ce82a1d536ab566e6a1218bea9c6a6696024 (cherry picked from commit a3d74764d89e396dd7e8e7812ea64a062d6aed85) Reviewed-on: https://gerrit.libreoffice.org/28421 Tested-by: Jenkins Reviewed-by: David Tardon diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-2.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-2.rtf new file mode 100644 index 000..c0bd269 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-2.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 8a6cf50..af0ae0a 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -276,7 +276,8 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) m_pImpl->SetSymbolFont(sStringValue); break; case NS_ooxml::LN_CT_Underline_val: -handleUnderlineType(nIntValue, m_pImpl->GetTopContext()); +if (m_pImpl->GetTopContext()) +handleUnderlineType(nIntValue, m_pImpl->GetTopContext()); break; case NS_ooxml::LN_CT_Color_val: if (m_pImpl->GetTopContext()) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-5.rtf |binary writerfilter/source/dmapper/DomainMapper_Impl.cxx|4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) New commits: commit f6477e396da204e19a759c86c5addcc5d4f8b78b Author: Caolán McNamaraDate: Sun Aug 7 16:58:22 2016 +0100 fftester: guard against empty table manager stack Change-Id: Ibb4cadb58aa17eacfc9741f7f13c780be347cd8b (cherry picked from commit 145e2dfc4501cb3fa01a1771cb6829b5945df4a6) Reviewed-on: https://gerrit.libreoffice.org/27937 Tested-by: Jenkins Reviewed-by: David Tardon diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-5.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-5.rtf new file mode 100644 index 000..a03be13 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-5.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 502f6ef..6bbef8d 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -1297,7 +1297,6 @@ void DomainMapper_Impl::appendTextPortion( const OUString& rString, const Proper } } - void DomainMapper_Impl::appendTextContent( const uno::Reference< text::XTextContent >& xContent, const uno::Sequence< beans::PropertyValue >& xPropertyValues @@ -1308,7 +1307,7 @@ void DomainMapper_Impl::appendTextContent( return; uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert( m_aTextAppendStack.top().xTextAppend, uno::UNO_QUERY ); OSL_ENSURE( xTextAppendAndConvert.is(), "trying to append a text content without XTextAppendAndConvert" ); -if(xTextAppendAndConvert.is() && ! getTableManager( ).isIgnore()) +if (xTextAppendAndConvert.is() && hasTableManager() && !getTableManager().isIgnore()) { try { @@ -1326,7 +1325,6 @@ void DomainMapper_Impl::appendTextContent( } } - void DomainMapper_Impl::appendOLE( const OUString& rStreamName, const OLEHandlerPtr& pOLEHandler ) { static const char sEmbeddedService[] = "com.sun.star.text.TextEmbeddedObject"; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-1.rtf |binary writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-2.rtf |binary writerfilter/source/rtftok/rtfdocumentimpl.cxx | 45 +- writerfilter/source/rtftok/rtfdocumentimpl.hxx |6 + 4 files changed, 29 insertions(+), 22 deletions(-) New commits: commit 3c5faa04ab204d39b91f43add0cffcc9ee90a94b Author: Caolán McNamaraDate: Fri Jul 29 08:48:22 2016 +0100 fftester: null DestinationText Change-Id: Icdd71733c4e9f4b36e6e957e4dea772087890faa (cherry picked from commit 0dd22165346f4296718656d17ae98ebbfe563719) Reviewed-on: https://gerrit.libreoffice.org/27666 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-1.rtf new file mode 100644 index 000..63465b0 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-1.rtf differ diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-2.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-2.rtf new file mode 100644 index 000..f0152b0 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/destinationtest-2.rtf differ diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 761cf20..9dc5f79 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -189,26 +189,27 @@ static util::DateTime lcl_getDateTime(RTFParserState& aState) aState.nDay, aState.nMonth, aState.nYear, false); } -static void lcl_DestinationToMath(OUStringBuffer& rDestinationText, oox::formulaimport::XmlStreamBuilder& rMathBuffer, bool& rMathNor) +static void lcl_DestinationToMath(OUStringBuffer* pDestinationText, oox::formulaimport::XmlStreamBuilder& rMathBuffer, bool& rMathNor) { -OUString aStr = rDestinationText.makeStringAndClear(); -if (!aStr.isEmpty()) +if (!pDestinationText) +return; +OUString aStr = pDestinationText->makeStringAndClear(); +if (aStr.isEmpty()) +return; +rMathBuffer.appendOpeningTag(M_TOKEN(r)); +if (rMathNor) { -rMathBuffer.appendOpeningTag(M_TOKEN(r)); -if (rMathNor) -{ -rMathBuffer.appendOpeningTag(M_TOKEN(rPr)); -// Same as M_TOKEN(lit) -rMathBuffer.appendOpeningTag(M_TOKEN(nor)); -rMathBuffer.appendClosingTag(M_TOKEN(nor)); -rMathBuffer.appendClosingTag(M_TOKEN(rPr)); -rMathNor = false; -} -rMathBuffer.appendOpeningTag(M_TOKEN(t)); -rMathBuffer.appendCharacters(aStr); -rMathBuffer.appendClosingTag(M_TOKEN(t)); -rMathBuffer.appendClosingTag(M_TOKEN(r)); +rMathBuffer.appendOpeningTag(M_TOKEN(rPr)); +// Same as M_TOKEN(lit) +rMathBuffer.appendOpeningTag(M_TOKEN(nor)); +rMathBuffer.appendClosingTag(M_TOKEN(nor)); +rMathBuffer.appendClosingTag(M_TOKEN(rPr)); +rMathNor = false; } +rMathBuffer.appendOpeningTag(M_TOKEN(t)); +rMathBuffer.appendCharacters(aStr); +rMathBuffer.appendClosingTag(M_TOKEN(t)); +rMathBuffer.appendClosingTag(M_TOKEN(r)); } RTFDocumentImpl::RTFDocumentImpl(uno::Reference const& xContext, @@ -1212,7 +1213,7 @@ void RTFDocumentImpl::text(OUString& rString) rString = rString.copy(0, rString.getLength() - 1); bEnd = true; } -m_aStates.top().pDestinationText->append(rString); +m_aStates.top().appendDestinationText(rString); if (bEnd) { // always clear, necessary in case of group-less fonttable @@ -1318,7 +1319,7 @@ void RTFDocumentImpl::text(OUString& rString) case Destination::TOCENTRY: case Destination::PROPNAME: case Destination::STATICVAL: -m_aStates.top().pDestinationText->append(rString); +m_aStates.top().appendDestinationText(rString); break; default: bRet = false; @@ -1347,7 +1348,7 @@ void RTFDocumentImpl::text(OUString& rString) // Don't return earlier, a bookmark start has to be in a paragraph group. if (m_aStates.top().eDestination == Destination::BOOKMARKSTART) { -m_aStates.top().pDestinationText->append(rString); +m_aStates.top().appendDestinationText(rString); return; } @@ -1765,7 +1766,7 @@ RTFError RTFDocumentImpl::pushState() m_aStates.top().eRunType = RTFParserState::LOCH; if (m_aStates.top().eDestination == Destination::MR) -lcl_DestinationToMath(*m_aStates.top().pDestinationText, m_aMathBuffer, m_bMathNor); +
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/nopropertyset-1.rtf |binary writerfilter/source/rtftok/rtfdispatchvalue.cxx |2 +- 2 files changed, 1 insertion(+), 1 deletion(-) New commits: commit ce9bd25b4695ef28910300a48cf75c7546602e59 Author: Caolán McNamaraDate: Tue Aug 2 16:05:53 2016 +0100 fftester: guard against no drawing object property set Change-Id: I51736459f9f098d9d793bff3b9a1a403962e099d (cherry picked from commit db686815b41c52598f0952613ff8c6be34b2f0e0) Reviewed-on: https://gerrit.libreoffice.org/27800 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/nopropertyset-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/nopropertyset-1.rtf new file mode 100644 index 000..59c3630 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/nopropertyset-1.rtf differ diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx index 03ed971..4302f27 100644 --- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx +++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx @@ -1240,7 +1240,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { rDrawingObject.aPolyLinePoints.back().Y = convertTwipToMm100(nParam); rDrawingObject.nPolyLineCount--; -if (rDrawingObject.nPolyLineCount == 0) +if (rDrawingObject.nPolyLineCount == 0 && rDrawingObject.xPropertySet.is()) { uno::Sequence< uno::Sequence >aPointSequenceSequence = { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-4.rtf |binary writerfilter/source/dmapper/DomainMapper_Impl.cxx|4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) New commits: commit cff184a4528c9c0e7112fe6470c5c0d2d4bfe41d Author: Caolán McNamaraDate: Sun Jul 31 19:58:18 2016 +0100 fftester: another table manager stack checks and a m_xTextFactory check too Change-Id: I9352410c42048b4dd7d6dbc3514351ab8f16790b (cherry picked from commit 8a6b2fb5b94de43316ab3ea95ff07cf5f46b6134) Reviewed-on: https://gerrit.libreoffice.org/27759 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-4.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-4.rtf new file mode 100644 index 000..28093f2 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-4.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 5959f6a..502f6ef 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -1035,7 +1035,7 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap ) TagLogger::getInstance().attribute("isTextAppend", sal_uInt32(xTextAppend.is())); #endif -if (xTextAppend.is() && pParaContext != nullptr && !getTableManager().isIgnore()) +if (xTextAppend.is() && pParaContext && hasTableManager() && !getTableManager().isIgnore()) { try { @@ -4202,7 +4202,7 @@ void DomainMapper_Impl::CloseFieldCommand() */ OUString aCode( pContext->GetCommand().trim() ); // Don't waste resources on wrapping shapes inside a fieldmark. -if (aCode != "SHAPE") +if (aCode != "SHAPE" && m_xTextFactory.is()) { xFieldInterface = m_xTextFactory->createInstance("com.sun.star.text.Fieldmark"); const uno::Reference xTextContent(xFieldInterface, uno::UNO_QUERY_THROW); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-2.rtf |binary writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-3.rtf |binary writerfilter/source/dmapper/DomainMapper.cxx |9 + writerfilter/source/dmapper/DomainMapper_Impl.cxx|7 +-- 4 files changed, 10 insertions(+), 6 deletions(-) New commits: commit 4b5a90d31c9e41a4f987e6306a1f4feab10b4266 Author: Caolán McNamaraDate: Fri Jul 29 21:24:26 2016 +0100 fftester: another empty table manager stack Change-Id: If3148cb6e16cff4aad28c4f86467c66ed04bcd05 (cherry picked from commit d00fc303bca7765762a602531b7d3b40ce8f1740) Reviewed-on: https://gerrit.libreoffice.org/27703 Tested-by: Jenkins Reviewed-by: Markus Mohrhard diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-2.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-2.rtf new file mode 100644 index 000..58328ed Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-2.rtf differ diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-3.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-3.rtf new file mode 100644 index 000..9fd5892 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-3.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 7a91ecf..8a6cf50 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -213,7 +213,7 @@ DomainMapper::~DomainMapper() void DomainMapper::lcl_attribute(Id nName, Value & val) { -if (m_pImpl->getTableManager().attribute(nName, val)) +if (m_pImpl->hasTableManager() && m_pImpl->getTableManager().attribute(nName, val)) return; static const int nSingleLineSpacing = 240; @@ -414,7 +414,7 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) else aSpacing.Height = sal_Int16(ConversionHelper::convertTwipToMM100( nIntValue )); -if( m_pImpl->getTableManager().isInCell() ) +if (m_pImpl->hasTableManager() && m_pImpl->getTableManager().isInCell()) { // direct formatting is applied for table cell data TablePropertyMapPtr pTblCellWithDirectFormatting(new TablePropertyMap); @@ -443,7 +443,7 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) aSpacing.Mode = style::LineSpacingMode::FIX; } -if( m_pImpl->getTableManager().isInCell() ) +if (m_pImpl->hasTableManager() && m_pImpl->getTableManager().isInCell()) { // If the table manager got the line rule after // ooxml::CT_Spacing_line, then it should get the rule @@ -2927,7 +2927,8 @@ void DomainMapper::lcl_endShape( ) // empty paragraph at the end of the shape text will cause problems: if // the shape text ends with a table, the extra paragraph will be // handled as an additional row of the ending table. -m_pImpl->getTableManager().endTable(); +if (m_pImpl->hasTableManager()) +m_pImpl->getTableManager().endTable(); lcl_endParagraphGroup(); m_pImpl->PopShapeContext( ); diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index ac8ea02..5959f6a 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -2017,8 +2017,11 @@ void DomainMapper_Impl::UpdateEmbeddedShapeProps(const uno::Reference< drawing:: void DomainMapper_Impl::PopShapeContext() { -getTableManager().endLevel(); -popTableManager(); +if (hasTableManager()) +{ +getTableManager().endLevel(); +popTableManager(); +} if ( m_aAnchoredStack.size() > 0 ) { // For OLE object replacement shape, the text append context was already removed ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-1.rtf |binary writerfilter/source/dmapper/DomainMapper.cxx |7 --- 2 files changed, 4 insertions(+), 3 deletions(-) New commits: commit f6d67cd8dee9a06c221c60f2b5d926af5e46ee9a Author: Caolán McNamaraDate: Sat Jul 30 19:22:15 2016 +0100 fftester: context stack check (cherry picked from commit 2acc9d06291b3f271c2a88bb4995d52d2d8d2152) Change-Id: I4a135a9f9ac2f16f9dab096f5c234ff1d6e5e853 Reviewed-on: https://gerrit.libreoffice.org/27730 Tested-by: Jenkins Reviewed-by: Markus Mohrhard diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-1.rtf new file mode 100644 index 000..7cdb94a Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-1.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 774bfa1..7a91ecf 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -3228,14 +3228,15 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len) // If the paragraph contains only the section properties and it has // no runs, we should not create a paragraph for it in Writer, unless that would remove the whole section. bool bRemove = !m_pImpl->GetParaChanged() && m_pImpl->GetParaSectpr() && !bSingleParagraph && !m_pImpl->GetIsDummyParaAddedForTableInSection(); -if (bRemove) +PropertyMapPtr xContext = bRemove ? m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH) : PropertyMapPtr(); +if (xContext) { // tdf#97417 delete numbering of the paragraph // it will be deleted anyway, and the numbering would be copied // to the next paragraph in sw SplitNode and then be applied to // every following paragraph - m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH)->Erase(PROP_NUMBERING_RULES); - m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH)->Erase(PROP_NUMBERING_LEVEL); +xContext->Erase(PROP_NUMBERING_RULES); +xContext->Erase(PROP_NUMBERING_LEVEL); } m_pImpl->SetParaSectpr(false); m_pImpl->finishParagraph(m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH)); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/fail/popstate-1.rtf |binary writerfilter/qa/cppunittests/rtftok/data/fail/popstate-2.rtf |1 writerfilter/qa/cppunittests/rtftok/testrtftok.cxx |4 + writerfilter/source/rtftok/rtfdocumentimpl.hxx | 31 +-- 4 files changed, 32 insertions(+), 4 deletions(-) New commits: commit d029c0346fb1d4094768dfce00b19c0c53526b04 Author: Caolán McNamaraDate: Thu Jul 28 13:58:33 2016 +0100 fftester: throw on empty stack access rather than spend the rest of my life protecting each one Change-Id: I181df33b052a0303f072ce0252d98562231569e2 (cherry picked from commit 2710211eb2333cafdb894742a8fa73fb02dc513b) fftester: empty states stack Change-Id: I05dfffced9a8677650a46b43f65a29e9b21c5524 (cherry picked from commit 5de2d02806669812d43e7f23db58ab7a16373ce6) Related: tdf#75757 remove inheritance from std::deque Change-Id: Ia50ea146052c2014ea16474186e2d15ce93581c1 (cherry picked from commit 7a887df4db129ac5222fd4068173b5a06d107a59) Reviewed-on: https://gerrit.libreoffice.org/27639 Tested-by: Jenkins Reviewed-by: Markus Mohrhard diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/popstate-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/popstate-1.rtf new file mode 100644 index 000..0418917 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/popstate-1.rtf differ diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/popstate-2.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/popstate-2.rtf new file mode 100644 index 000..273bb13 --- /dev/null +++ b/writerfilter/qa/cppunittests/rtftok/data/fail/popstate-2.rtf @@ -0,0 +1 @@ +\\rttt\noTidqtpúúëdôp{\"pb18}\p{\"ptxtbr } diff --git a/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx b/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx index 1211037..e380728 100644 --- a/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx +++ b/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx @@ -74,6 +74,10 @@ bool RtfTest::load(const OUString&, } throw; } +catch (const std::exception&) +{ +return false; +} } void RtfTest::test() diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 132df5a..d31b369 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -308,19 +308,42 @@ public: }; /// An RTF stack is similar to std::stack, except that it has an operator[]. -struct RTFStack : public std::deque +struct RTFStack { +private: +std::deque m_Impl; +public: RTFParserState& top() { -return back(); +if (m_Impl.empty()) +throw std::out_of_range("empty rtf state stack"); +return m_Impl.back(); } void pop() { -return pop_back(); +if (m_Impl.empty()) +throw std::out_of_range("empty rtf state stack"); +return m_Impl.pop_back(); } void push(RTFParserState const& rState) { -return push_back(rState); +return m_Impl.push_back(rState); +} +bool empty() const +{ +return m_Impl.empty(); +} +size_t size() const +{ +return m_Impl.size(); +} +const RTFParserState& operator[](size_t nIndex) const +{ +return m_Impl[nIndex]; +} +RTFParserState& operator[](size_t nIndex) +{ +return m_Impl[nIndex]; } }; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - writerfilter/qa writerfilter/source
writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-1.rtf |binary writerfilter/source/dmapper/DomainMapper.cxx |3 +++ 2 files changed, 3 insertions(+) New commits: commit 15f7ad8774d51b376e40c0ee6061d02510d33e2c Author: Caolán McNamaraDate: Thu Jul 28 13:49:13 2016 +0100 fftester: empty table manager stack Change-Id: Ia7f7ace8130d5dfe290207e0cd3d2e6a43b8ab46 (cherry picked from commit df9414084b46c1712dc7151f50023438c62301e2) Reviewed-on: https://gerrit.libreoffice.org/27631 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-1.rtf new file mode 100644 index 000..5b34e7f Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/tablemanager-1.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 5ee269b..774bfa1 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -3200,6 +3200,9 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len) return; } +if (!m_pImpl->hasTableManager()) +return; + try { m_pImpl->getTableManager().utext(data_, len); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits