<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Expand URL class query parameter functions"
   href="https://bugs.webkit.org/show_bug.cgi?id=228122#c21">Comment # 21</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Expand URL class query parameter functions"
   href="https://bugs.webkit.org/show_bug.cgi?id=228122">bug 228122</a>
              from <span class="vcard"><a class="email" href="mailto:risul_islam@apple.com" title="Risul Islam <risul_islam@apple.com>"> <span class="fn">Risul Islam</span></a>
</span></b>
        <pre>Comment on <span class=""><a href="attachment.cgi?id=434669&action=diff" name="attach_434669" title="Patch">attachment 434669</a> <a href="attachment.cgi?id=434669&action=edit" title="Patch">[details]</a></span>
Patch

View in context: <a href="https://bugs.webkit.org/attachment.cgi?id=434669&action=review">https://bugs.webkit.org/attachment.cgi?id=434669&action=review</a>

<span class="quote">>>>>> Source/WTF/wtf/URL.cpp:1176
>>>>> +    auto otherQueryParameters = URLParser::parseURLEncodedForm(otherURL.query());
>>>> 
>>>> It seems to me would could implement this operation significantly more efficiently by sorting both vectors and walking through them, rather than using a hash table.
>>> 
>>> Wouldn't sorting be costly in terms of time? We preferred to sacrifice some memory. Although the length of the URL and the number of the parameter is not that huge, still we can discuss about any kind of optimization.
>> 
>> No, I don’t think so.

> We would be sorting a vector of pairs of pointers. It should not be more costly than hash tables. Both should be O(n log n). Including the speed of the memory allocation, I expect the sorting algorithm would be both faster and use less memory.</span >

Clear now. Thanks Darin.

<span class="quote">>>>> Source/WTF/wtf/URL.h:207
>>>> +    WTF_EXPORT_PRIVATE void removeQueryParameters(const HashSet<String>&);
>>> 
>>> How did you decide that these should be members of the URL class rather than functions that take a URL? In particular, the ones that take two URLs seem like they should be functions that take two URLs.
>> 
>> I am sorry I am a little bit unclear here. It would be very helpful if I could be a bit clear.

> Example:

>     bool areEqualIgnoringQueryAndFragments(const URL&, const URL&);</span >

Got it. Thank you for the clarification.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>