summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/tools/urlobj.hxx2
-rw-r--r--tools/source/fsys/urlobj.cxx94
2 files changed, 47 insertions, 49 deletions
diff --git a/include/tools/urlobj.hxx b/include/tools/urlobj.hxx
index 6413d2787f96..6bba4d9aa13b 100644
--- a/include/tools/urlobj.hxx
+++ b/include/tools/urlobj.hxx
@@ -255,7 +255,7 @@ public:
// General Structure:
INetURLObject():
- m_eScheme(INetProtocol::NotValid), m_eSmartScheme(INetProtocol::Http) {}
+ m_aAbsURIRef(256), m_eScheme(INetProtocol::NotValid), m_eSmartScheme(INetProtocol::Http) {}
bool HasError() const { return m_eScheme == INetProtocol::NotValid; }
diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx
index 8babbf90b79f..adc73849b5f0 100644
--- a/tools/source/fsys/urlobj.cxx
+++ b/tools/source/fsys/urlobj.cxx
@@ -732,7 +732,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
sal_uInt32 nFragmentDelimiter = '#';
- OUStringBuffer aSynAbsURIRef(rTheAbsURIRef.getLength()*2);
+ m_aAbsURIRef.setLength(0);
// Parse <scheme>:
sal_Unicode const * p = pPos;
@@ -745,7 +745,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
char const * pTemp = pPrefix->m_eKind >= PrefixInfo::Kind::External ?
pPrefix->m_pTranslatedPrefix :
pPrefix->m_pPrefix;
- aSynAbsURIRef.appendAscii(pTemp);
+ m_aAbsURIRef.appendAscii(pTemp);
m_aScheme = SubString( 0, strstr(pTemp, ":") - pTemp );
}
else
@@ -889,8 +889,8 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
if (m_eScheme != INetProtocol::Generic) {
aSynScheme = static_cast<const OUString&>(getSchemeInfo().m_sScheme);
}
- m_aScheme.set(aSynAbsURIRef, aSynScheme, aSynAbsURIRef.getLength());
- aSynAbsURIRef.append(':');
+ m_aScheme.set(m_aAbsURIRef, aSynScheme, m_aAbsURIRef.getLength());
+ m_aAbsURIRef.append(':');
}
sal_uInt32 nSegmentDelimiter = '/';
@@ -916,7 +916,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
setInvalid();
return false;
}
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
OUStringBuffer aSynAuthority;
while (pPos < pEnd
&& *pPos != '/' && *pPos != '?'
@@ -929,9 +929,9 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
appendUCS4(aSynAuthority, nUTF32, eEscapeType,
PART_AUTHORITY, eCharset, false);
}
- m_aHost.set(aSynAbsURIRef,
+ m_aHost.set(m_aAbsURIRef,
aSynAuthority.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aAbsURIRef.getLength());
// misusing m_aHost to store the authority
break;
}
@@ -941,7 +941,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
if (pEnd - pPos >= 2 && pPos[0] == '/' && pPos[1] == '/')
{
pPos += 2;
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
OUStringBuffer aSynAuthority;
while (pPos < pEnd
&& *pPos != '/' && *pPos != '?'
@@ -965,9 +965,9 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
setInvalid();
return false;
}
- m_aHost.set(aSynAbsURIRef,
+ m_aHost.set(m_aAbsURIRef,
aSynAuthority.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aAbsURIRef.getLength());
// misusing m_aHost to store the authority
}
break;
@@ -981,7 +981,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
setInvalid();
return false;
}
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
OUStringBuffer aSynUser(128);
bool bHasUser = false;
@@ -1006,10 +1006,10 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
}
else
{
- m_aUser.set(aSynAbsURIRef,
+ m_aUser.set(m_aAbsURIRef,
aSynUser.makeStringAndClear(),
- aSynAbsURIRef.getLength());
- aSynAbsURIRef.append("@");
+ m_aAbsURIRef.getLength());
+ m_aAbsURIRef.append("@");
++pPos;
while (pPos < pEnd
@@ -1029,9 +1029,9 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
setInvalid();
return false;
}
- m_aHost.set(aSynAbsURIRef,
+ m_aHost.set(m_aAbsURIRef,
aSynAuthority.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aAbsURIRef.getLength());
// misusing m_aHost to store the authority
break;
}
@@ -1074,7 +1074,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
pPos + 2, p1, EncodeMechanism::All,
RTL_TEXTENCODING_DONTKNOW, true, nullptr))
{
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
pHostPortBegin = pPos + 2;
pHostPortEnd = p1;
pPos = p1;
@@ -1098,7 +1098,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
// "file:///" *path ["#" *UCS4]
if (pEnd - pPos >= 2 && pPos[0] == '/' && pPos[1] == '/')
{
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
pPos += 2;
bSkippedInitialSlash = true;
if ((eStyle & FSysStyle::Dos)
@@ -1117,7 +1117,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
// "file:///" *path ["#" *UCS4]
if (pPos < pEnd && *pPos == '/')
{
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
break;
}
@@ -1145,7 +1145,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
(scanDomain(p1, pe) > 0 && p1 == pe)
)
{
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
pHostPortBegin = pPos + 2;
pHostPortEnd = pe;
pPos = pe;
@@ -1172,7 +1172,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
|| pPos[2] == '/'
|| pPos[2] == '\\'))
{
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
nAltSegmentDelimiter = '\\';
bSkippedInitialSlash = true;
break;
@@ -1194,7 +1194,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
// character is not copied
if (eStyle & (FSysStyle::Unix | FSysStyle::Dos))
{
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
switch (guessFSysStyleByCounting(pPos, pEnd, eStyle))
{
case FSysStyle::Unix:
@@ -1232,7 +1232,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
setInvalid();
return false;
}
- aSynAbsURIRef.append("//");
+ m_aAbsURIRef.append("//");
sal_Unicode const * pAuthority = pPos;
sal_uInt32 c = getSchemeInfo().m_bQuery ? '?' : 0x80000000;
@@ -1314,13 +1314,13 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
appendUCS4(aSynUser, nUTF32, eEscapeType, ePart,
eCharset, false);
}
- m_aUser.set(aSynAbsURIRef, aSynUser.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aUser.set(m_aAbsURIRef, aSynUser.makeStringAndClear(),
+ m_aAbsURIRef.getLength());
if (bHasAuth)
{
if (bSupportsPassword)
{
- aSynAbsURIRef.append(':');
+ m_aAbsURIRef.append(':');
OUStringBuffer aSynAuth;
while (p1 < pUserInfoEnd)
{
@@ -1331,12 +1331,12 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
appendUCS4(aSynAuth, nUTF32, eEscapeType,
ePart, eCharset, false);
}
- m_aAuth.set(aSynAbsURIRef, aSynAuth.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aAuth.set(m_aAbsURIRef, aSynAuth.makeStringAndClear(),
+ m_aAbsURIRef.getLength());
}
else
{
- aSynAbsURIRef.append(";AUTH=");
+ m_aAbsURIRef.append(";AUTH=");
OUStringBuffer aSynAuth;
while (p1 < pUserInfoEnd)
{
@@ -1352,12 +1352,12 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
appendUCS4(aSynAuth, nUTF32, eEscapeType,
ePart, eCharset, false);
}
- m_aAuth.set(aSynAbsURIRef, aSynAuth.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aAuth.set(m_aAbsURIRef, aSynAuth.makeStringAndClear(),
+ m_aAbsURIRef.getLength());
}
}
if (pHostPortBegin)
- aSynAbsURIRef.append('@');
+ m_aAbsURIRef.append('@');
}
if (pHostPortBegin)
@@ -1399,21 +1399,21 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
}
break;
}
- sal_Int32 nLenBeforeHost = aSynAbsURIRef.getLength();
+ sal_Int32 nLenBeforeHost = m_aAbsURIRef.getLength();
if (!parseHostOrNetBiosName(
pHostPortBegin, pPort, eMechanism, eCharset,
- bNetBiosName, &aSynAbsURIRef))
+ bNetBiosName, &m_aAbsURIRef))
{
setInvalid();
return false;
}
- m_aHost = SubString(nLenBeforeHost, aSynAbsURIRef.getLength() - nLenBeforeHost);
+ m_aHost = SubString(nLenBeforeHost, m_aAbsURIRef.getLength() - nLenBeforeHost);
if (pPort != pHostPortEnd)
{
- aSynAbsURIRef.append(':');
- m_aPort.set(aSynAbsURIRef,
+ m_aAbsURIRef.append(':');
+ m_aPort.set(m_aAbsURIRef,
std::u16string_view{pPort + 1, static_cast<size_t>(pHostPortEnd - (pPort + 1))},
- aSynAbsURIRef.getLength());
+ m_aAbsURIRef.getLength());
}
}
}
@@ -1429,13 +1429,13 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
setInvalid();
return false;
}
- m_aPath.set(aSynAbsURIRef, aSynPath.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aPath.set(m_aAbsURIRef, aSynPath.makeStringAndClear(),
+ m_aAbsURIRef.getLength());
// Parse ?<query>
if (getSchemeInfo().m_bQuery && pPos < pEnd && *pPos == '?')
{
- aSynAbsURIRef.append('?');
+ m_aAbsURIRef.append('?');
OUStringBuffer aSynQuery;
for (++pPos; pPos < pEnd && *pPos != nFragmentDelimiter;)
{
@@ -1445,14 +1445,14 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
appendUCS4(aSynQuery, nUTF32, eEscapeType,
PART_URIC, eCharset, true);
}
- m_aQuery.set(aSynAbsURIRef, aSynQuery.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aQuery.set(m_aAbsURIRef, aSynQuery.makeStringAndClear(),
+ m_aAbsURIRef.getLength());
}
// Parse #<fragment>
if (pPos < pEnd && *pPos == nFragmentDelimiter)
{
- aSynAbsURIRef.append(sal_Unicode(nFragmentDelimiter));
+ m_aAbsURIRef.append(sal_Unicode(nFragmentDelimiter));
OUStringBuffer aSynFragment;
for (++pPos; pPos < pEnd;)
{
@@ -1462,8 +1462,8 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
appendUCS4(aSynFragment, nUTF32, eEscapeType, PART_URIC,
eCharset, true);
}
- m_aFragment.set(aSynAbsURIRef, aSynFragment.makeStringAndClear(),
- aSynAbsURIRef.getLength());
+ m_aFragment.set(m_aAbsURIRef, aSynFragment.makeStringAndClear(),
+ m_aAbsURIRef.getLength());
}
if (pPos != pEnd)
@@ -1472,8 +1472,6 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef,
return false;
}
- m_aAbsURIRef = std::move(aSynAbsURIRef);
-
return true;
}