summaryrefslogtreecommitdiff
path: root/src/Request.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-19 11:19:18 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-19 11:19:18 +0000
commitf4ac2c21856bc052d14c7d4f68d06fe5854e3d5e (patch)
tree8b61125da5f33a47914a5a8ea11ea09014a9e1cd /src/Request.cc
parent0189bbc6bc727d161b9adcd2fa82f6c573bbf0a7 (diff)
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Returns const reference. The internal urlencode function was optimized a little bit. * src/Request.cc * src/Request.h * src/HttpRequest.cc * src/HttpRequest.h
Diffstat (limited to 'src/Request.cc')
-rw-r--r--src/Request.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/Request.cc b/src/Request.cc
index 17dee95c..aa66e2fa 100644
--- a/src/Request.cc
+++ b/src/Request.cc
@@ -85,9 +85,9 @@ bool Request::parseUrl(const std::string& url) {
std::string tempUrl;
std::string::size_type sharpIndex = url.find("#");
if(sharpIndex != std::string::npos) {
- tempUrl = urlencode(url.substr(0, sharpIndex));
+ urlencode(tempUrl, url.substr(0, sharpIndex));
} else {
- tempUrl = urlencode(url);
+ urlencode(tempUrl, url);
}
currentUrl = tempUrl;
std::string query;
@@ -173,13 +173,14 @@ bool Request::isHexNumber(const char c) const
return ('0' <= c && c <= '9') || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f');
}
-std::string Request::urlencode(const std::string& src) const
+void Request::urlencode(std::string& result, const std::string& src) const
{
if(src.empty()) {
- return A2STR::NIL;
+ result = A2STR::NIL;
+ return;
}
size_t lastIndex = src.size()-1;
- std::string result = src+" ";
+ result = src+" ";
size_t index = lastIndex;
while(index-- > 0) {
const char c = result[index];
@@ -194,7 +195,7 @@ std::string Request::urlencode(const std::string& src) const
}
}
}
- return result.substr(0, result.size()-2);
+ result.erase(result.size()-2);
}
} // namespace aria2