Kaydet (Commit) 544243ea authored tarafından Caolán McNamara's avatar Caolán McNamara

ofz#10635 oom in tight OUString concat loop

Change-Id: I56944e14b7d2b2dc0946b76360b906447e024f06
Reviewed-on: https://gerrit.libreoffice.org/61154
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 1c004568
...@@ -1001,7 +1001,9 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken ) ...@@ -1001,7 +1001,9 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken )
switch( nToken ) switch( nToken )
{ {
case HtmlTokenId::TITLE_OFF: case HtmlTokenId::TITLE_OFF:
if( IsNewDoc() && !m_sTitle.isEmpty() ) {
OUString sTitle = m_sTitle.makeStringAndClear();
if( IsNewDoc() && !sTitle.isEmpty() )
{ {
if( m_xDoc->GetDocShell() ) { if( m_xDoc->GetDocShell() ) {
uno::Reference<document::XDocumentPropertiesSupplier> uno::Reference<document::XDocumentPropertiesSupplier>
...@@ -1011,39 +1013,39 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken ) ...@@ -1011,39 +1013,39 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken )
xDPS->getDocumentProperties()); xDPS->getDocumentProperties());
OSL_ENSURE(xDocProps.is(), "no DocumentProperties"); OSL_ENSURE(xDocProps.is(), "no DocumentProperties");
if (xDocProps.is()) { 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_bInTitle = false;
m_sTitle.clear();
break; break;
}
case HtmlTokenId::NONBREAKSPACE: case HtmlTokenId::NONBREAKSPACE:
m_sTitle += " "; m_sTitle.append(" ");
break; break;
case HtmlTokenId::SOFTHYPH: case HtmlTokenId::SOFTHYPH:
m_sTitle += "-"; m_sTitle.append("-");
break; break;
case HtmlTokenId::TEXTTOKEN: case HtmlTokenId::TEXTTOKEN:
m_sTitle += aToken; m_sTitle.append(aToken);
break; break;
default: default:
m_sTitle += "<"; m_sTitle.append("<");
if( (nToken >= HtmlTokenId::ONOFF_START) && isOffToken(nToken) ) if( (nToken >= HtmlTokenId::ONOFF_START) && isOffToken(nToken) )
m_sTitle += "/"; m_sTitle.append("/");
m_sTitle += sSaveToken; m_sTitle.append(sSaveToken);
if( !aToken.isEmpty() ) if( !aToken.isEmpty() )
{ {
m_sTitle += " "; m_sTitle.append(" ");
m_sTitle += aToken; m_sTitle.append(aToken);
} }
m_sTitle += ">"; m_sTitle.append(">");
break; break;
} }
......
...@@ -347,7 +347,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient ...@@ -347,7 +347,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
OUString m_aScriptURL; // script URL OUString m_aScriptURL; // script URL
OUString m_aStyleSource; // content of current style sheet OUString m_aStyleSource; // content of current style sheet
OUString m_aContents; // text of current marquee, field and so 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_aUnknownToken; // a started unknown token
OUString m_aBulletGrfs[MAXLEVEL]; OUString m_aBulletGrfs[MAXLEVEL];
OUString m_sJmpMark; OUString m_sJmpMark;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment