tools/source/fsys/urlobj.cxx |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

New commits:
commit da6ac377c6a4bb84ba4bdcc41e73c9079b009039
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Nov 23 12:15:42 2021 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Tue Nov 23 13:47:16 2021 +0100

    avoid OUString temporary in INetURLObject::changeScheme
    
    Change-Id: I8a97c1d89770fe2c0ba0d3f75ce9f3fec0df2e53
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125692
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx
index 085c6d2846f0..6f4dfd068304 100644
--- a/tools/source/fsys/urlobj.cxx
+++ b/tools/source/fsys/urlobj.cxx
@@ -1476,8 +1476,6 @@ bool INetURLObject::setAbsURIRef(OUString const & 
rTheAbsURIRef,
 }
 
 void INetURLObject::changeScheme(INetProtocol eTargetScheme) {
-    OUString aTmpStr=m_aAbsURIRef.toString();
-    m_aAbsURIRef.setLength(0);
     int oldSchemeLen = 0;
     const OUString& rOldSchemeName = getSchemeInfo().m_sScheme;
     if (m_eScheme == INetProtocol::Generic)
@@ -1487,8 +1485,8 @@ void INetURLObject::changeScheme(INetProtocol 
eTargetScheme) {
     m_eScheme=eTargetScheme;
     const OUString& rNewSchemeName = getSchemeInfo().m_sScheme;
     int newSchemeLen = rNewSchemeName.getLength();
-    m_aAbsURIRef.append(rNewSchemeName);
-    m_aAbsURIRef.append(aTmpStr.getStr()+oldSchemeLen);
+    m_aAbsURIRef.remove(0, oldSchemeLen);
+    m_aAbsURIRef.insert(0, rNewSchemeName);
     int delta=newSchemeLen-oldSchemeLen;
     m_aUser+=delta;
     m_aAuth+=delta;

Reply via email to