diff options
author | Moonchild <moonchild@palemoon.org> | 2020-07-10 16:52:44 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-07-10 18:34:52 +0000 |
commit | 82faff19e1761797b7a75f9221f0709c5a38bfe6 (patch) | |
tree | cbc3fe84ef42bf1d13a983c5e865915fbd84772a /netwerk | |
parent | 1597b61148692bbaa4194bcaea9823da140c51ab (diff) | |
download | uxp-82faff19e1761797b7a75f9221f0709c5a38bfe6.tar.gz |
[network] Use query and ref lengths if available in nsStandardURL.
Diffstat (limited to 'netwerk')
-rw-r--r-- | netwerk/base/nsStandardURL.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp index 81b4855028..1866c10379 100644 --- a/netwerk/base/nsStandardURL.cpp +++ b/netwerk/base/nsStandardURL.cpp @@ -2747,12 +2747,16 @@ nsStandardURL::SetFilePath(const nsACString &input) return SetSpec(spec); } - else if (mPath.mLen > 1) { + + if (mPath.mLen > 1) { mSpec.Cut(mPath.mPos + 1, mFilepath.mLen - 1); // left shift query, and ref ShiftFromQuery(1 - mFilepath.mLen); + // One character for '/', and if we have a query or ref we add their
+ // length and one extra for each '?' or '#' characters
+ mPath.mLen = 1 + (mQuery.mLen >= 0 ? (mQuery.mLen + 1) : 0) + + (mRef.mLen >= 0 ? (mRef.mLen + 1) : 0); // these contain only a '/' - mPath.mLen = 1; mDirectory.mLen = 1; mFilepath.mLen = 1; // these are no longer defined |