summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-07-10 16:52:44 +0000
committerMoonchild <moonchild@palemoon.org>2020-07-10 16:52:44 +0000
commit936438dd55b30c1b6d435905c9494ef6a6511489 (patch)
treecfcd858d4fb339f6f8a2c8b30ea89b3babcd8b03
parentf0a6ca4f95a017c1697a8b696fad07e305940e1f (diff)
downloadUXP-936438dd55b30c1b6d435905c9494ef6a6511489.tar
UXP-936438dd55b30c1b6d435905c9494ef6a6511489.tar.gz
UXP-936438dd55b30c1b6d435905c9494ef6a6511489.tar.lz
UXP-936438dd55b30c1b6d435905c9494ef6a6511489.tar.xz
UXP-936438dd55b30c1b6d435905c9494ef6a6511489.zip
[network] Use query and ref lengths if available in nsStandardURL.
-rw-r--r--netwerk/base/nsStandardURL.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp
index 81b485502..1866c1037 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