<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>161511</bug_id>
          
          <creation_ts>2016-09-01 14:39:36 -0700</creation_ts>
          <short_desc>Avoid unneeded string copy when parsing URL hosts</short_desc>
          <delta_ts>2016-09-06 14:44:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1225541</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-01 14:39:36 -0700</bug_when>
    <thetext>Avoid unneeded string copy when parsing URL hosts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225542</commentid>
    <comment_count>1</comment_count>
      <attachid>287683</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-01 14:41:19 -0700</bug_when>
    <thetext>Created attachment 287683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225547</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-01 14:52:50 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/205318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226142</commentid>
    <comment_count>3</comment_count>
      <attachid>287683</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-03 08:38:16 -0700</bug_when>
    <thetext>Comment on attachment 287683
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=287683&amp;action=review

&gt; Source/WebCore/platform/URLParser.h:46
&gt; +    void parseAuthority(StringView::CodePoints::Iterator&amp;, const StringView::CodePoints::Iterator&amp; end);
&gt; +    void parseHost(StringView::CodePoints::Iterator&amp;, const StringView::CodePoints::Iterator&amp; end);

Why these pairs of arguments instead of a StringView?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226839</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-06 14:44:44 -0700</bug_when>
    <thetext>At the time I need to call these functions, all I have is StringView::CodePoints::Iterators.  I&apos;m not sure how to make a StringView out of iterators.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287683</attachid>
            <date>2016-09-01 14:41:19 -0700</date>
            <delta_ts>2016-09-01 14:51:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161511-20160901143905.patch</filename>
            <type>text/plain</type>
            <size>5962</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTMxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA5LTAxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQXZvaWQgdW5u
ZWVkZWQgc3RyaW5nIGNvcHkgd2hlbiBwYXJzaW5nIFVSTCBob3N0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNTExCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLiAg
Q292ZXJlZCBieSBleGlzdGluZyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpVUkxQYXJzZXI6OnBhcnNlQXV0aG9yaXR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlVSTFBhcnNlcjo6cGFyc2VIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6YXV0
aG9yaXR5RW5kUmVhY2hlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6
Omhvc3RFbmRSZWFjaGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQYXJzZXIu
aDoKKwogMjAxNi0wOS0wMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgIndoZW5EZWZpbmVkIiB0byBDdXN0b21FbGVtZW50UmVnaXN0cnkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkocmV2aXNpb24gMjA1MzEyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM3
LDExICsyMzcsMTEgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgU3RyaW5nJiBpbnB1dAog
ICAgIExPRyhVUkxQYXJzZXIsICJQYXJzaW5nIFVSTCA8JXM+IGJhc2UgPCVzPiIsIGlucHV0LnV0
ZjgoKS5kYXRhKCksIGJhc2Uuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgbV91cmwgPSB7
IH07CiAgICAgbV9idWZmZXIuY2xlYXIoKTsKLSAgICBtX2F1dGhvcml0eU9ySG9zdEJ1ZmZlci5j
bGVhcigpOwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0gU3RyaW5nVmlldyhpbnB1dCkuY29kZVBv
aW50cygpOwogICAgIGF1dG8gYyA9IGNvZGVQb2ludHMuYmVnaW4oKTsKICAgICBhdXRvIGVuZCA9
IGNvZGVQb2ludHMuZW5kKCk7CisgICAgYXV0byBhdXRob3JpdHlPckhvc3RCZWdpbiA9IGNvZGVQ
b2ludHMuYmVnaW4oKTsKICAgICB3aGlsZSAoYyAhPSBlbmQgJiYgaXNDMENvbnRyb2xPclNwYWNl
KCpjKSkKICAgICAgICAgKytjOwogICAgIApAQCAtMzcxLDYgKzM3MSw3IEBAIFVSTCBVUkxQYXJz
ZXI6OnBhcnNlKGNvbnN0IFN0cmluZyYgaW5wdXQKICAgICAgICAgICAgIGlmICgqYyA9PSAnLycp
IHsKICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlOjpBdXRob3JpdHlPckhvc3Q7CiAgICAg
ICAgICAgICAgICAgKytjOworICAgICAgICAgICAgICAgIGF1dGhvcml0eU9ySG9zdEJlZ2luID0g
YzsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6OlBh
dGg7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQzNiwzMCArNDM3LDMxIEBAIFVSTCBVUkxQYXJz
ZXI6OnBhcnNlKGNvbnN0IFN0cmluZyYgaW5wdXQKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG1fdXJsLm1fdXNlclN0YXJ0ID0gbV9idWZmZXIubGVuZ3RoKCk7CiAgICAgICAgICAgICBzdGF0
ZSA9IFN0YXRlOjpBdXRob3JpdHlPckhvc3Q7CisgICAgICAgICAgICBhdXRob3JpdHlPckhvc3RC
ZWdpbiA9IGM7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdGF0ZTo6QXV0aG9y
aXR5T3JIb3N0OgogICAgICAgICAgICAgTE9HX1NUQVRFKCJBdXRob3JpdHlPckhvc3QiKTsKICAg
ICAgICAgICAgIGlmICgqYyA9PSAnQCcpIHsKLSAgICAgICAgICAgICAgICBhdXRob3JpdHlFbmRS
ZWFjaGVkKCk7CisgICAgICAgICAgICAgICAgcGFyc2VBdXRob3JpdHkoYXV0aG9yaXR5T3JIb3N0
QmVnaW4sIGMpOworICAgICAgICAgICAgICAgICsrYzsKKyAgICAgICAgICAgICAgICBhdXRob3Jp
dHlPckhvc3RCZWdpbiA9IGM7CiAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6SG9zdDsK
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoKmMgPT0gJy8nIHx8ICpjID09ICc/JyB8fCAqYyA9PSAn
IycpIHsKICAgICAgICAgICAgICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX2J1ZmZlci5sZW5ndGgo
KTsKICAgICAgICAgICAgICAgICBtX3VybC5tX3Bhc3N3b3JkRW5kID0gbV91cmwubV91c2VyRW5k
OwotICAgICAgICAgICAgICAgIGhvc3RFbmRSZWFjaGVkKCk7CisgICAgICAgICAgICAgICAgcGFy
c2VIb3N0KGF1dGhvcml0eU9ySG9zdEJlZ2luLCBjKTsKICAgICAgICAgICAgICAgICBzdGF0ZSA9
IFN0YXRlOjpQYXRoOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICAgICAgbV9hdXRob3JpdHlPckhvc3RCdWZmZXIuYXBwZW5kKCpjKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICsrYzsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFN0YXRlOjpIb3N0OgogICAgICAgICAgICAgTE9HX1NUQVRFKCJIb3N0Iik7CiAgICAg
ICAgICAgICBpZiAoKmMgPT0gJy8nIHx8ICpjID09ICc/JyB8fCAqYyA9PSAnIycpIHsKLSAgICAg
ICAgICAgICAgICBob3N0RW5kUmVhY2hlZCgpOworICAgICAgICAgICAgICAgIHBhcnNlSG9zdChh
dXRob3JpdHlPckhvc3RCZWdpbiwgYyk7CiAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6
UGF0aDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IG1fYXV0aG9yaXR5T3JIb3N0QnVmZmVyLmFwcGVuZCgqYyk7CiAgICAgICAgICAgICArK2M7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdGF0ZTo6RmlsZToKQEAgLTU4OSw3ICs1
OTEsNyBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBTdHJpbmcmIGlucHV0CiAgICAgY2Fz
ZSBTdGF0ZTo6SG9zdDoKICAgICAgICAgaWYgKHN0YXRlID09IFN0YXRlOjpIb3N0KQogICAgICAg
ICAgICAgTE9HX0ZJTkFMX1NUQVRFKCJIb3N0Iik7Ci0gICAgICAgIGhvc3RFbmRSZWFjaGVkKCk7
CisgICAgICAgIHBhcnNlSG9zdChhdXRob3JpdHlPckhvc3RCZWdpbiwgZW5kKTsKICAgICAgICAg
bV9idWZmZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIG1fdXJsLm1fcGF0aEVuZCA9IG1fdXJsLm1f
cG9ydEVuZCArIDE7CiAgICAgICAgIG1fdXJsLm1fcGF0aEFmdGVyTGFzdFNsYXNoID0gbV91cmwu
bV9wYXRoRW5kOwpAQCAtNjM3LDExICs2MzksOCBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25z
dCBTdHJpbmcmIGlucHV0CiAgICAgcmV0dXJuIG1fdXJsOwogfQogCi12b2lkIFVSTFBhcnNlcjo6
YXV0aG9yaXR5RW5kUmVhY2hlZCgpCit2b2lkIFVSTFBhcnNlcjo6cGFyc2VBdXRob3JpdHkoU3Ry
aW5nVmlldzo6Q29kZVBvaW50czo6SXRlcmF0b3ImIGl0ZXJhdG9yLCBjb25zdCBTdHJpbmdWaWV3
OjpDb2RlUG9pbnRzOjpJdGVyYXRvciYgZW5kKQogewotICAgIGF1dG8gY29kZVBvaW50cyA9IFN0
cmluZ1ZpZXcobV9hdXRob3JpdHlPckhvc3RCdWZmZXIudG9TdHJpbmcoKSkuY29kZVBvaW50cygp
OwotICAgIGF1dG8gaXRlcmF0b3IgPSBjb2RlUG9pbnRzLmJlZ2luKCk7Ci0gICAgYXV0byBlbmQg
PSBjb2RlUG9pbnRzLmVuZCgpOwogICAgIGZvciAoOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0
b3IpIHsKICAgICAgICAgbV9idWZmZXIuYXBwZW5kKCppdGVyYXRvcik7CiAgICAgICAgIGlmICgq
aXRlcmF0b3IgPT0gJzonKSB7CkBAIC02NTQsNyArNjUzLDYgQEAgdm9pZCBVUkxQYXJzZXI6OmF1
dGhvcml0eUVuZFJlYWNoZWQoKQogICAgICAgICBtX2J1ZmZlci5hcHBlbmQoKml0ZXJhdG9yKTsK
ICAgICBtX3VybC5tX3Bhc3N3b3JkRW5kID0gbV9idWZmZXIubGVuZ3RoKCk7CiAgICAgbV9idWZm
ZXIuYXBwZW5kKCdAJyk7Ci0gICAgbV9hdXRob3JpdHlPckhvc3RCdWZmZXIuY2xlYXIoKTsKIH0K
IAogc3RhdGljIHZvaWQgc2VyaWFsaXplSVB2NCh1aW50MzJfdCBhZGRyZXNzLCBTdHJpbmdCdWls
ZGVyJiBidWZmZXIpCkBAIC05MjUsMTEgKzkyMyw4IEBAIHN0YXRpYyBPcHRpb25hbDxzdGQ6OmFy
cmF5PHVpbnQxNl90LCA4Pj4KICAgICByZXR1cm4gYWRkcmVzczsKIH0KIAotdm9pZCBVUkxQYXJz
ZXI6Omhvc3RFbmRSZWFjaGVkKCkKK3ZvaWQgVVJMUGFyc2VyOjpwYXJzZUhvc3QoU3RyaW5nVmll
dzo6Q29kZVBvaW50czo6SXRlcmF0b3ImIGl0ZXJhdG9yLCBjb25zdCBTdHJpbmdWaWV3OjpDb2Rl
UG9pbnRzOjpJdGVyYXRvciYgZW5kKQogewotICAgIGF1dG8gY29kZVBvaW50cyA9IFN0cmluZ1Zp
ZXcobV9hdXRob3JpdHlPckhvc3RCdWZmZXIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpOwotICAg
IGF1dG8gaXRlcmF0b3IgPSBjb2RlUG9pbnRzLmJlZ2luKCk7Ci0gICAgYXV0byBlbmQgPSBjb2Rl
UG9pbnRzLmVuZCgpOwogICAgIGlmIChpdGVyYXRvciA9PSBlbmQpCiAgICAgICAgIHJldHVybjsK
ICAgICBpZiAoKml0ZXJhdG9yID09ICdbJykgewpAQCAtOTY2LDcgKzk2MSw2IEBAIHZvaWQgVVJM
UGFyc2VyOjpob3N0RW5kUmVhY2hlZCgpCiAgICAgfQogICAgIG1fdXJsLm1faG9zdEVuZCA9IG1f
YnVmZmVyLmxlbmd0aCgpOwogICAgIG1fdXJsLm1fcG9ydEVuZCA9IG1fdXJsLm1faG9zdEVuZDsK
LSAgICBtX2F1dGhvcml0eU9ySG9zdEJ1ZmZlci5jbGVhcigpOwogfQogCiBib29sIFVSTFBhcnNl
cjo6YWxsVmFsdWVzRXF1YWwoY29uc3QgVVJMJiBhLCBjb25zdCBVUkwmIGIpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAkocmV2aXNpb24gMjA1MzEyKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDgg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBVUkwgbV91cmw7CiAgICAgU3RyaW5nQnVpbGRlciBt
X2J1ZmZlcjsKLSAgICBTdHJpbmdCdWlsZGVyIG1fYXV0aG9yaXR5T3JIb3N0QnVmZmVyOyAvLyBG
SVhNRTogU2F2ZSB0aGUgaXRlcmF0b3IgYXQgdGhlIGVuZCBvZiB0aGUgc2NoZW1lIGluc3RlYWQg
b2YgdXNpbmcgYSBzZWNvbmQgYnVmZmVyLgotICAgIHZvaWQgYXV0aG9yaXR5RW5kUmVhY2hlZCgp
OwotICAgIHZvaWQgaG9zdEVuZFJlYWNoZWQoKTsKKyAgICB2b2lkIHBhcnNlQXV0aG9yaXR5KFN0
cmluZ1ZpZXc6OkNvZGVQb2ludHM6Okl0ZXJhdG9yJiwgY29uc3QgU3RyaW5nVmlldzo6Q29kZVBv
aW50czo6SXRlcmF0b3ImIGVuZCk7CisgICAgdm9pZCBwYXJzZUhvc3QoU3RyaW5nVmlldzo6Q29k
ZVBvaW50czo6SXRlcmF0b3ImLCBjb25zdCBTdHJpbmdWaWV3OjpDb2RlUG9pbnRzOjpJdGVyYXRv
ciYgZW5kKTsKIAogICAgIGVudW0gY2xhc3MgVVJMUGFydDsKICAgICB2b2lkIGNvcHlVUkxQYXJ0
c1VudGlsKGNvbnN0IFVSTCYgYmFzZSwgVVJMUGFydCk7Cg==
</data>
<flag name="review"
          id="311122"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>