diff --git a/ChangeLog b/ChangeLog index bfda8be1af..bb85fc2934 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Aug 6 00:15:10 2014 NARUSE, Yui + + * lib/uri/http.rb (URI::HTTP#request_uri): optimized. + decrease object allocation, and ensure always create at least one new + object for return value. + Wed Aug 6 03:41:21 2014 Aaron Patterson * ext/psych/lib/psych/visitors/to_ruby.rb: backwards compatibility for diff --git a/lib/uri/http.rb b/lib/uri/http.rb index 9877b1ee59..dc47613cdf 100644 --- a/lib/uri/http.rb +++ b/lib/uri/http.rb @@ -93,12 +93,12 @@ module URI # Otherwise, the path is simply URI#path. # def request_uri - r = path_query - if r && r[0] != ?/ - r = '/' + r + return nil unless @path + if @path.start_with?(?/.freeze) + @query ? "#@path?#@query" : @path.dup + else + @query ? "/#@path?#@query" : "/#@path" end - - r end end