filter/source/svg/svgfontexport.cxx | 9 ++++++--- filter/source/svg/svgwriter.cxx | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-)
New commits: commit 9c3d44197613f1570026c0f351268bda293c08ea Author: Chr. Rossmanith <[email protected]> Date: Fri Apr 10 21:39:06 2015 +0200 tdf#56467: copy text of meta actions with valid text length avoids !!br0ken!! in svg output Change-Id: I7f99a26f3a995cbaeb1e520a411a8e1c31a8a61f Reviewed-on: https://gerrit.libreoffice.org/15144 Tested-by: Jenkins <[email protected]> Reviewed-by: Thorsten Behrens <[email protected]> diff --git a/filter/source/svg/svgfontexport.cxx b/filter/source/svg/svgfontexport.cxx index 2de4b73..b65370a 100644 --- a/filter/source/svg/svgfontexport.cxx +++ b/filter/source/svg/svgfontexport.cxx @@ -102,7 +102,8 @@ void SVGFontExport::implCollectGlyphs() case( META_TEXT_ACTION ): { const MetaTextAction* pA = static_cast<const MetaTextAction*>(pAction); - aText = pA->GetText().copy( pA->GetIndex(), pA->GetLen() ); + sal_Int32 aLength=std::min( pA->GetText().getLength(), pA->GetLen() ); + aText = pA->GetText().copy( pA->GetIndex(), aLength ); } break; @@ -116,14 +117,16 @@ void SVGFontExport::implCollectGlyphs() case( META_TEXTARRAY_ACTION ): { const MetaTextArrayAction* pA = static_cast<const MetaTextArrayAction*>(pAction); - aText = pA->GetText().copy( pA->GetIndex(), pA->GetLen() ); + sal_Int32 aLength=std::min( pA->GetText().getLength(), pA->GetLen() ); + aText = pA->GetText().copy( pA->GetIndex(), aLength ); } break; case( META_STRETCHTEXT_ACTION ): { const MetaStretchTextAction* pA = static_cast<const MetaStretchTextAction*>(pAction); - aText = pA->GetText().copy( pA->GetIndex(), pA->GetLen() ); + sal_Int32 aLength=std::min( pA->GetText().getLength(), pA->GetLen() ); + aText = pA->GetText().copy( pA->GetIndex(), aLength ); } break; diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index 44fe125..01d218b 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -3427,7 +3427,8 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, if( nWriteFlags & SVGWRITER_WRITE_TEXT ) { const MetaTextAction* pA = static_cast<const MetaTextAction*>(pAction); - const OUString aText = pA->GetText().copy( pA->GetIndex(), pA->GetLen() ); + sal_Int32 aLength = std::min( pA->GetText().getLength(), pA->GetLen() ); + const OUString aText = pA->GetText().copy( pA->GetIndex(), aLength ); if( !aText.isEmpty() ) { @@ -3474,7 +3475,8 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, if( nWriteFlags & SVGWRITER_WRITE_TEXT ) { const MetaTextArrayAction* pA = static_cast<const MetaTextArrayAction*>(pAction); - const OUString aText = pA->GetText().copy( pA->GetIndex(), pA->GetLen() ); + sal_Int32 aLength = std::min( pA->GetText().getLength(), pA->GetLen() ); + const OUString aText = pA->GetText().copy( pA->GetIndex(), aLength ); if( !aText.isEmpty() ) { @@ -3498,7 +3500,8 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, if( nWriteFlags & SVGWRITER_WRITE_TEXT ) { const MetaStretchTextAction* pA = static_cast<const MetaStretchTextAction*>(pAction); - const OUString aText = pA->GetText().copy( pA->GetIndex(), pA->GetLen() ); + sal_Int32 aLength = std::min( pA->GetText().getLength(), pA->GetLen() ); + const OUString aText = pA->GetText().copy( pA->GetIndex(), aLength ); if( !aText.isEmpty() ) { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
