From f4ac2c21856bc052d14c7d4f68d06fe5854e3d5e Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 19 May 2008 11:19:18 +0000 Subject: 2008-05-19 Tatsuhiro Tsujikawa Returns const reference. The internal urlencode function was optimized a little bit. * src/Request.cc * src/Request.h * src/HttpRequest.cc * src/HttpRequest.h --- src/Request.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/Request.cc') 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 -- cgit