<?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>53266</bug_id>
          
          <creation_ts>2011-01-27 16:17:26 -0800</creation_ts>
          <short_desc>Add WTFString method to compare equality with Vector&lt;UChar&gt;</short_desc>
          <delta_ts>2011-01-27 20:27:11 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>49845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>341110</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 16:17:26 -0800</bug_when>
    <thetext>Add WTFString method to compare equality with Vector&lt;UChar&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341111</commentid>
    <comment_count>1</comment_count>
      <attachid>80373</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 16:18:35 -0800</bug_when>
    <thetext>Created attachment 80373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341133</commentid>
    <comment_count>2</comment_count>
      <attachid>80373</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-27 16:59:49 -0800</bug_when>
    <thetext>Comment on attachment 80373
Patch

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

Seems OK.

&gt; Source/JavaScriptCore/wtf/text/StringImpl.h:366
&gt; +    if (!a.size())
&gt; +        return true;
&gt; +    return !memcmp(a.data(), b-&gt;characters(), b-&gt;length());

Is calling memcmp with length = 0 OK?  If so then you don&apos;t need the !a.size() check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341137</commentid>
    <comment_count>3</comment_count>
      <attachid>80373</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 17:04:14 -0800</bug_when>
    <thetext>Comment on attachment 80373
Patch

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

&gt;&gt; Source/JavaScriptCore/wtf/text/StringImpl.h:366
&gt;&gt; +    if (!a.size())
&gt;&gt; +        return true;
&gt;&gt; +    return !memcmp(a.data(), b-&gt;characters(), b-&gt;length());
&gt; 
&gt; Is calling memcmp with length = 0 OK?  If so then you don&apos;t need the !a.size() check.

Sounds dodgy:
http://coding.derkeiler.com/Archive/C_CPP/comp.lang.c/2004-07/0109.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341180</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-27 17:45:14 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Is calling memcmp with length = 0 OK?  If so then you don&apos;t need the !a.size() check.
&gt; 
&gt; Sounds dodgy:
&gt; http://coding.derkeiler.com/Archive/C_CPP/comp.lang.c/2004-07/0109.html

Why the FUD? memcpy with length == 0 is definitely OK!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341181</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-27 17:45:27 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Why the FUD? memcpy with length == 0 is definitely OK!

I mean memcmp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341194</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 17:55:53 -0800</bug_when>
    <thetext>&gt; Why the FUD? memcpy with length == 0 is definitely OK!

Even if one of the pointers is NULL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341203</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-27 18:03:31 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Why the FUD? memcmp with length == 0 is definitely OK!
&gt; 
&gt; Even if one of the pointers is NULL?

In practice, yes. I am pretty damned sure of this. And I think we rely on it.

But the C standard does use wording that makes it seem a little ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341215</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 18:15:10 -0800</bug_when>
    <thetext>Okiedokes.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341221</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 18:21:05 -0800</bug_when>
    <thetext>Committed r76894: &lt;http://trac.webkit.org/changeset/76894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341265</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 19:47:31 -0800</bug_when>
    <thetext>Attachment 80373 did not build on chromium:
Build output: http://queues.webkit.org/results/7597383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341287</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 20:27:11 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76894 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80373</attachid>
            <date>2011-01-27 16:18:35 -0800</date>
            <delta_ts>2011-01-27 18:01:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53266-20110127161833.patch</filename>
            <type>text/plain</type>
            <size>2537</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGRlZTA3ZTZhY2I2NGRmYjJlMmE2MTA1ZGU5ZTNk
MjViYjI0OGVlZWIuLjMwNWQyMzliZWZjNjk3OTJjMWI3MmZkZDRiODM2ZTlhNTkzMjJlOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAxLTI3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIFdURlN0cmluZyBtZXRob2QgdG8gY29tcGFyZSBlcXVh
bGl0eSB3aXRoIFZlY3RvcjxVQ2hhcj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzMjY2CisKKyAgICAgICAgSSdtIHBsYW5uaW5nIHRvIHVzZSB0aGlz
IG1ldGhvZCBpbiB0aGUgbmV3IFhTUyBmaWx0ZXIgaW1wbGVtZW50YXRpb24sCisgICAgICAgIGJ1
dCBpdCBzZWVtcyBnZW5lcmFsbHkgdXNlZnVsLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5n
SW1wbC5oOgorICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nTnVsbGl0eSk6CisgICAgICAgICog
d3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OmVxdWFsSWdub3JpbmdOdWxsaXR5
KToKKwogMjAxMS0wMS0yNiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggZGMxZGJiMjMyNTk1NmQ3MDhkMDkzOGY4YzU5ZDk0
ZjU2MzYzODRlNC4uNjExOTUwNjMwYTUyOGNiMTQzYjZjZmFiNjM2MzgxZjUyNjU5Y2ExOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0zNTQsNiAr
MzU0LDE4IEBAIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IGNoYXIqIGEsIGNv
bnN0IFVDaGFyKiBiLCB1bnNpZ25lZCBsZW5ndGgpIHsKIAogYm9vbCBlcXVhbElnbm9yaW5nTnVs
bGl0eShTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwogCit0ZW1wbGF0ZTxzaXplX3QgaW5saW5l
Q2FwYWNpdHk+Citib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KGNvbnN0IFZlY3RvcjxVQ2hhciwg
aW5saW5lQ2FwYWNpdHk+JiBhLCBTdHJpbmdJbXBsKiBiKQoreworICAgIGlmICghYikKKyAgICAg
ICAgcmV0dXJuICFhLnNpemUoKTsKKyAgICBpZiAoYS5zaXplKCkgIT0gYi0+bGVuZ3RoKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWEuc2l6ZSgpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gIW1lbWNtcChhLmRhdGEoKSwgYi0+Y2hhcmFjdGVycygpLCBiLT5s
ZW5ndGgoKSk7Cit9CisKIGludCBjb2RlUG9pbnRDb21wYXJlKGNvbnN0IFN0cmluZ0ltcGwqLCBj
b25zdCBTdHJpbmdJbXBsKik7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NwYWNlT3JOZXdsaW5l
KFVDaGFyIGMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RG
U3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5k
ZXggY2I3MGIyZDVhYTQyYTFiN2ZlZTczMDVlYjY3OGQ1NzQ2ZDFmMzc2Ny4uMGFlZTJlZmQ3ZGYx
NDRhODg1MzZkNzc3MjU2MmUwZWI1Y2YwMjcyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMzY5LDYgKzM2OSw5IEBAIGlubGluZSBib29sIGVxdWFs
UG9zc2libHlJZ25vcmluZ0Nhc2UoY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIsIGJv
b2wgaWduCiAKIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KGNvbnN0IFN0cmluZyYg
YSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nTnVsbGl0eShhLmltcGwo
KSwgYi5pbXBsKCkpOyB9CiAKK3RlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KK2lubGlu
ZSBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KGNvbnN0IFZlY3RvcjxVQ2hhciwgaW5saW5lQ2Fw
YWNpdHk+JiBhLCBjb25zdCBTdHJpbmcmIGIpIHsgcmV0dXJuIGVxdWFsSWdub3JpbmdOdWxsaXR5
KGEsIGIuaW1wbCgpKTsgfQorCiBpbmxpbmUgYm9vbCBvcGVyYXRvciEoY29uc3QgU3RyaW5nJiBz
dHIpIHsgcmV0dXJuIHN0ci5pc051bGwoKTsgfQogCiBpbmxpbmUgdm9pZCBzd2FwKFN0cmluZyYg
YSwgU3RyaW5nJiBiKSB7IGEuc3dhcChiKTsgfQo=
</data>
<flag name="review"
          id="71853"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>