sw/source/filter/html/swhtml.cxx | 28 +++++++++++++++------------- sw/source/filter/html/swhtml.hxx | 2 +- 2 files changed, 16 insertions(+), 14 deletions(-)
New commits: commit 544243ea8a92e9761201941c033c341795328baf Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sun Sep 30 11:52:24 2018 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sun Sep 30 16:08:11 2018 +0200 ofz#10635 oom in tight OUString concat loop Change-Id: I56944e14b7d2b2dc0946b76360b906447e024f06 Reviewed-on: https://gerrit.libreoffice.org/61154 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx index 0e00318fe7c3..d3c513530216 100644 --- a/sw/source/filter/html/swhtml.cxx +++ b/sw/source/filter/html/swhtml.cxx @@ -1001,7 +1001,9 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken ) switch( nToken ) { case HtmlTokenId::TITLE_OFF: - if( IsNewDoc() && !m_sTitle.isEmpty() ) + { + OUString sTitle = m_sTitle.makeStringAndClear(); + if( IsNewDoc() && !sTitle.isEmpty() ) { if( m_xDoc->GetDocShell() ) { uno::Reference<document::XDocumentPropertiesSupplier> @@ -1011,39 +1013,39 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken ) xDPS->getDocumentProperties()); OSL_ENSURE(xDocProps.is(), "no DocumentProperties"); if (xDocProps.is()) { - xDocProps->setTitle(m_sTitle); + xDocProps->setTitle(sTitle); } - m_xDoc->GetDocShell()->SetTitle( m_sTitle ); + m_xDoc->GetDocShell()->SetTitle(sTitle); } } m_bInTitle = false; - m_sTitle.clear(); break; + } case HtmlTokenId::NONBREAKSPACE: - m_sTitle += " "; + m_sTitle.append(" "); break; case HtmlTokenId::SOFTHYPH: - m_sTitle += "-"; + m_sTitle.append("-"); break; case HtmlTokenId::TEXTTOKEN: - m_sTitle += aToken; + m_sTitle.append(aToken); break; default: - m_sTitle += "<"; + m_sTitle.append("<"); if( (nToken >= HtmlTokenId::ONOFF_START) && isOffToken(nToken) ) - m_sTitle += "/"; - m_sTitle += sSaveToken; + m_sTitle.append("/"); + m_sTitle.append(sSaveToken); if( !aToken.isEmpty() ) { - m_sTitle += " "; - m_sTitle += aToken; + m_sTitle.append(" "); + m_sTitle.append(aToken); } - m_sTitle += ">"; + m_sTitle.append(">"); break; } diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx index e1244ba24839..fffff878e01b 100644 --- a/sw/source/filter/html/swhtml.hxx +++ b/sw/source/filter/html/swhtml.hxx @@ -347,7 +347,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient OUString m_aScriptURL; // script URL OUString m_aStyleSource; // content of current style sheet OUString m_aContents; // text of current marquee, field and so - OUString m_sTitle; + OUStringBuffer m_sTitle; OUString m_aUnknownToken; // a started unknown token OUString m_aBulletGrfs[MAXLEVEL]; OUString m_sJmpMark; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits