<?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>46509</bug_id>
          
          <creation_ts>2010-09-24 14:13:55 -0700</creation_ts>
          <short_desc>Add operator == for AtomicString and Vector&lt;Uchar&gt;</short_desc>
          <delta_ts>2010-09-27 13:43:56 -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>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>20709</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>barraclough</cc>
    
    <cc>bweinstein</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284685</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-24 14:13:55 -0700</bug_when>
    <thetext>Add operator == for AtomicString and Vector&lt;Uchar&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284703</commentid>
    <comment_count>1</comment_count>
      <attachid>68749</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-24 14:28:00 -0700</bug_when>
    <thetext>Created attachment 68749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284885</commentid>
    <comment_count>2</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-24 18:10:58 -0700</bug_when>
    <thetext>Darin suggested that I added this function in bug 20709.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284889</commentid>
    <comment_count>3</comment_count>
      <attachid>68749</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-24 18:21:54 -0700</bug_when>
    <thetext>Comment on attachment 68749
Patch

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

&gt; JavaScriptCore/wtf/text/AtomicString.cpp:159
&gt; +bool operator==(const AtomicString&amp; a, const Vector&lt;UChar&gt;&amp; b)

Unlike strings, there is no concept of a null vector as distinct from an empty vector, so there should not be code here checking b.data() for null.

&gt; JavaScriptCore/wtf/text/AtomicString.cpp:161
&gt; +    StringImpl* impl = a.impl();

It doesn’t help readability or efficiency to put this into a local variable.

&gt; JavaScriptCore/wtf/text/AtomicString.cpp:163
&gt; +    if ((!impl || !impl-&gt;characters()) &amp;&amp; !s)

There’s no need to check null impl-&gt;characters().

&gt; JavaScriptCore/wtf/text/AtomicString.cpp:167
&gt; +    return equal(impl, s, b.size());

This whole function can just be:

    return a.impl() &amp;&amp; equal(a.impl(), b.data(), b.size());

No need for any other null checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284904</commentid>
    <comment_count>4</comment_count>
      <attachid>68799</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-24 18:38:57 -0700</bug_when>
    <thetext>Created attachment 68799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284908</commentid>
    <comment_count>5</comment_count>
      <attachid>68799</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-24 18:45:13 -0700</bug_when>
    <thetext>Comment on attachment 68799
Patch

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

&gt; JavaScriptCore/wtf/text/AtomicString.h:129
&gt; +inline bool operator==(const AtomicString&amp; a, const Vector&lt;UChar&gt;&amp; b) { return a.impl() &amp;&amp; equal(a.impl(), b.data(), b.size()); }

Oops! This won’t compile. The equal function this calls is inside AtomicString.cpp and private to the cpp file, not exposed to the header at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284911</commentid>
    <comment_count>6</comment_count>
      <attachid>68799</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-24 18:46:41 -0700</bug_when>
    <thetext>Comment on attachment 68799
Patch

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

&gt;&gt; JavaScriptCore/wtf/text/AtomicString.h:129
&gt;&gt; +inline bool operator==(const AtomicString&amp; a, const Vector&lt;UChar&gt;&amp; b) { return a.impl() &amp;&amp; equal(a.impl(), b.data(), b.size()); }
&gt; 
&gt; Oops! This won’t compile. The equal function this calls is inside AtomicString.cpp and private to the cpp file, not exposed to the header at all.

Yeah, I apologize for that patch upload. I&apos;m moving it to the cpp and compiling and testing again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284917</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-24 19:05:12 -0700</bug_when>
    <thetext>Attachment 68799 did not build on mac:
Build output: http://queues.webkit.org/results/4061109</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285641</commentid>
    <comment_count>8</comment_count>
      <attachid>68937</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-27 11:46:44 -0700</bug_when>
    <thetext>Created attachment 68937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285642</commentid>
    <comment_count>9</comment_count>
      <attachid>68937</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-27 11:47:34 -0700</bug_when>
    <thetext>Comment on attachment 68937
Patch

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

&gt; JavaScriptCore/wtf/text/AtomicString.cpp:158
&gt;  }
&gt; +bool operator==(const AtomicString&amp; a, const Vector&lt;UChar&gt;&amp; b)

There should be a blank line there.

We could use the names &quot;string&quot; and &quot;vector&quot; instead of &quot;a&quot; and &quot;b&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285671</commentid>
    <comment_count>10</comment_count>
      <attachid>68937</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-27 12:22:40 -0700</bug_when>
    <thetext>Comment on attachment 68937
Patch

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

Thanks for your patience.

&gt;&gt; JavaScriptCore/wtf/text/AtomicString.cpp:158
&gt;&gt; +bool operator==(const AtomicString&amp; a, const Vector&lt;UChar&gt;&amp; b)
&gt; 
&gt; There should be a blank line there.
&gt; 
&gt; We could use the names &quot;string&quot; and &quot;vector&quot; instead of &quot;a&quot; and &quot;b&quot; here.

Done and done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285710</commentid>
    <comment_count>11</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-27 13:43:56 -0700</bug_when>
    <thetext>Committed r68422: &lt;http://trac.webkit.org/changeset/68422&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68749</attachid>
            <date>2010-09-24 14:28:00 -0700</date>
            <delta_ts>2010-09-24 18:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46509-20100924142758.patch</filename>
            <type>text/plain</type>
            <size>3322</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhNDA3NDViZjMyNDZmYmMxMDM4NjkzZWU4MjM2NjgyODEwOTIyYWNmLi44
MmE2ZWYxYWU5YmIxOWI0MjI5ZjUwOWU2OGUzMzYzYjAxMTg0NjUzIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMDktMjQgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
b3BlcmF0b3IgPT0gZm9yIEF0b21pY1N0cmluZyBhbmQgVmVjdG9yPFVjaGFyPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1MDkKKworICAgICAgICAq
IHd0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHA6CisgICAgICAgIChXVEY6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAqIHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oOgorICAgICAgICAoV1RGOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdURjo6b3BlcmF0b3IhPSk6CisKIDIwMTAtMDktMjQgIMSwc21haWwg
RMO2bm1leiAgPGlzbWFpbEBuYW10cmFjLm9yZz4KIAogICAgICAgIFJldmlld2VkIGJ5IENzYWJh
IE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZy5jcHAgYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCmlu
ZGV4IDE5ODExNzAyZDU4Yzk4N2RjNjY4N2YwNDE0ODY0YjQ3Nzc3OThkMGMuLmZjYzdjYTgwYTA0
MDNiMjZmOGMwMzM0YzZhYWVkNDNiOTMxZjZmYmUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
QXRvbWljU3RyaW5nLmNwcApAQCAtMTU2LDYgKzE1NiwxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
ZXF1YWwoU3RyaW5nSW1wbCogc3RyaW5nLCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbAogI2VuZGlmCiB9CiAKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEs
IGNvbnN0IFZlY3RvcjxVQ2hhcj4mIGIpCit7CisgICAgU3RyaW5nSW1wbCogaW1wbCA9IGEuaW1w
bCgpOworICAgIGNvbnN0IFVDaGFyKiBzID0gYi5kYXRhKCk7CisgICAgaWYgKCghaW1wbCB8fCAh
aW1wbC0+Y2hhcmFjdGVycygpKSAmJiAhcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYg
KCghaW1wbCB8fCAhaW1wbC0+Y2hhcmFjdGVycygpKSB8fCAhcykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBlcXVhbChpbXBsLCBzLCBiLnNpemUoKSk7Cit9CisKIHN0cnVjdCBV
Q2hhckJ1ZmZlclRyYW5zbGF0b3IgewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFVD
aGFyQnVmZmVyJiBidWYpCiAgICAgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL3Rl
eHQvQXRvbWljU3RyaW5nLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmcu
aAppbmRleCBjZmFiZGU3YzJkMzVjZjZmZDk5ZWNlMDc0ZjI3MWE5YTI3MTViMTJiLi4wNmU2M2Y0
ZGM5NzEwNzQ3MjYyZjdiOWM2NjlkNzI4OGJlNDQyMjRlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmcuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4
dC9BdG9taWNTdHJpbmcuaApAQCAtMTI2LDE1ICsxMjYsMTkgQEAgcHJpdmF0ZToKIAogaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgYikgeyByZXR1cm4gYS5pbXBsKCkgPT0gYi5pbXBsKCk7IH0KIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IGNoYXIqIGIpOworYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3QgVmVjdG9yPFVDaGFyPiYgYik7CiBpbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJl
dHVybiBlcXVhbChhLmltcGwoKSwgYi5pbXBsKCkpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IGNoYXIqIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gYiA9PSBhOyB9
CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBiKSB7IHJldHVybiBlcXVhbChhLmltcGwoKSwgYi5pbXBsKCkpOyB9CitpbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFZlY3RvcjxVQ2hhcj4mIGEsIGNvbnN0IEF0b21pY1N0cmluZyYg
YikgeyByZXR1cm4gYiA9PSBhOyB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQXRv
bWljU3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGEuaW1wbCgpICE9
IGIuaW1wbCgpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEF0b21pY1N0cmluZyYg
YSwgY29uc3QgY2hhciAqYikgeyByZXR1cm4gIShhID09IGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiAh
ZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IFZlY3RvcjxVQ2hhcj4mIGIpIHsgcmV0dXJuICEoYSA9
PSBiKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBjaGFyKiBhLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGIpIHsgcmV0dXJuICEoYiA9PSBhKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gIWVxdWFs
KGEuaW1wbCgpLCBiLmltcGwoKSk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgVmVj
dG9yPFVDaGFyPiYgYSwgY29uc3QgQXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiAhKGEgPT0gYik7
IH0KIAogaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2UoY29uc3QgQXRvbWljU3RyaW5nJiBh
LCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKGEuaW1w
bCgpLCBiLmltcGwoKSk7IH0KIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IEF0
b21pY1N0cmluZyYgYSwgY29uc3QgY2hhciogYikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2Uo
YS5pbXBsKCksIGIpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68799</attachid>
            <date>2010-09-24 18:38:57 -0700</date>
            <delta_ts>2010-09-27 11:46:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46509-20100924183856.patch</filename>
            <type>text/plain</type>
            <size>2516</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhNDA3NDViZjMyNDZmYmMxMDM4NjkzZWU4MjM2NjgyODEwOTIyYWNmLi42
NjQyMDU2YzRlMWM4YWQ2ZmY5N2ZjZjExYTMyYjRjMzhiZThiNTcwIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTAtMDktMjQgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
b3BlcmF0b3IgPT0gZm9yIEF0b21pY1N0cmluZyBhbmQgVmVjdG9yPFVjaGFyPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1MDkKKworICAgICAgICAq
IHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oOgorICAgICAgICAoV1RGOjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdURjo6b3BlcmF0b3IhPSk6CisKIDIwMTAtMDktMjQgIMSwc21haWwgRMO2bm1leiAg
PGlzbWFpbEBuYW10cmFjLm9yZz4KIAogICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dv
bsOhYy4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5o
IGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgKaW5kZXggY2ZhYmRlN2My
ZDM1Y2Y2ZmQ5OWVjZTA3NGYyNzFhOWEyNzE1YjEyYi4uNzJiNmI1ZDM4NzE4YzQ0OTE2MmNmOGZj
ZDhjYmJmOTRiZmQ1M2I4ZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRv
bWljU3RyaW5nLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgK
QEAgLTEyNiwxNSArMTI2LDE5IEBAIHByaXZhdGU6CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgQXRvbWljU3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGEu
aW1wbCgpID09IGIuaW1wbCgpOyB9CiBib29sIG9wZXJhdG9yPT0oY29uc3QgQXRvbWljU3RyaW5n
JiBhLCBjb25zdCBjaGFyKiBiKTsKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQXRvbWlj
U3RyaW5nJiBhLCBjb25zdCBWZWN0b3I8VUNoYXI+JiBiKSB7IHJldHVybiBhLmltcGwoKSAmJiBl
cXVhbChhLmltcGwoKSwgYi5kYXRhKCksIGIuc2l6ZSgpKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gZXF1
YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBj
aGFyKiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGIgPT0gYTsgfQogaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikg
eyByZXR1cm4gZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQoraW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBWZWN0b3I8VUNoYXI+JiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0
dXJuIGIgPT0gYTsgfQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEF0b21pY1N0cmlu
ZyYgYSwgY29uc3QgQXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiBhLmltcGwoKSAhPSBiLmltcGwo
KTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0
IGNoYXIgKmIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gIWVxdWFsKGEu
aW1wbCgpLCBiLmltcGwoKSk7IH0KK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQXRvbWlj
U3RyaW5nJiBhLCBjb25zdCBWZWN0b3I8VUNoYXI+JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0K
IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgY2hhciogYSwgY29uc3QgQXRvbWljU3RyaW5n
JiBiKSB7IHJldHVybiAhKGIgPT0gYSk7IH0KIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
U3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuICFlcXVhbChhLmltcGwo
KSwgYi5pbXBsKCkpOyB9CitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZlY3RvcjxVQ2hh
cj4mIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CiAKIGlu
bGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShhLmltcGwoKSwgYi5p
bXBsKCkpOyB9CiBpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nQ2FzZShjb25zdCBBdG9taWNTdHJp
bmcmIGEsIGNvbnN0IGNoYXIqIGIpIHsgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKGEuaW1wbCgp
LCBiKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68937</attachid>
            <date>2010-09-27 11:46:44 -0700</date>
            <delta_ts>2010-09-27 12:22:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46509-20100927114643.patch</filename>
            <type>text/plain</type>
            <size>3700</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhNDA3NDViZjMyNDZmYmMxMDM4NjkzZWU4MjM2NjgyODEwOTIyYWNmLi43
YjVlMDBlOGJlMDkzZjE3Y2I2OTMxYjA0OTAzY2QzZjEwZmFkMDE2IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTAtMDktMjcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
b3BlcmF0b3IgPT0gZm9yIEF0b21pY1N0cmluZyBhbmQgVmVjdG9yPFVjaGFyPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1MDkKKworICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuY3Bw
OgorICAgICAgICAoV1RGOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6Om9wZXJh
dG9yIT0pOgorCiAyMDEwLTA5LTI0ICDEsHNtYWlsIETDtm5tZXogIDxpc21haWxAbmFtdHJhYy5v
cmc+CiAKICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27DoWMuCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5leHAKaW5kZXggMTNiOTY3NjBkYzhiOGY2ZWRlMjZjZGYwNmQ1ZTlmMGNhY2Fl
NmVhZC4uMjkzMzg3ZDQ5YTRlMTI5Y2MwNmI0YTI4NGUzMDUwZjFmMmNmNzgxMiAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cApAQCAtNDc0LDYgKzQ3NCw3IEBAIF9fWk4zV1RGOWRheUluWWVh
ckVkaQogX19aTjNXVEY5ZW1wdHlBdG9tRQogX19aTjNXVEY5eG1sbnNBdG9tRQogX19aTjNXVEZl
cUVSS05TXzEyQXRvbWljU3RyaW5nRVBLYworX19aTjNXVEZlcUVSS05TXzEyQXRvbWljU3RyaW5n
RVJLTlNfNlZlY3Rvckl0TG0wRUVFCiBfX1pOM1dURmVxRVJLTlNfN0NTdHJpbmdFUzJfCiBfX1pO
M1dURnBsRVBLY1JLTlNfNlN0cmluZ0UKIF9fWk4zV1RGcGxFUktOU182U3RyaW5nRVBLYwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAKaW5kZXggMTk4MTE3MDJkNThjOTg3
ZGM2Njg3ZjA0MTQ4NjRiNDc3Nzc5OGQwYy4uNTNkOTAxZDdhODRkZjBiNDk4Mzg5ODU5ZTMxZGMz
YWE4NjIzNzc2ZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3Ry
aW5nLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCkBA
IC0xNTUsNiArMTU1LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBlcXVhbChTdHJpbmdJbXBsKiBz
dHJpbmcsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsCiAgICAgcmV0dXJuIHRy
dWU7CiAjZW5kaWYKIH0KK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNv
bnN0IFZlY3RvcjxVQ2hhcj4mIGIpCit7CisgICAgcmV0dXJuIGEuaW1wbCgpICYmIGVxdWFsKGEu
aW1wbCgpLCBiLmRhdGEoKSwgYi5zaXplKCkpOworfQogCiBzdHJ1Y3QgVUNoYXJCdWZmZXJUcmFu
c2xhdG9yIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBVQ2hhckJ1ZmZlciYgYnVm
KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nLmggYi9K
YXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmcuaAppbmRleCBjZmFiZGU3YzJkMzVj
ZjZmZDk5ZWNlMDc0ZjI3MWE5YTI3MTViMTJiLi4wNmU2M2Y0ZGM5NzEwNzQ3MjYyZjdiOWM2Njlk
NzI4OGJlNDQyMjRlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNT
dHJpbmcuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmcuaApAQCAt
MTI2LDE1ICsxMjYsMTkgQEAgcHJpdmF0ZToKIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gYS5pbXBs
KCkgPT0gYi5pbXBsKCk7IH0KIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEs
IGNvbnN0IGNoYXIqIGIpOworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF0b21pY1N0cmluZyYgYSwg
Y29uc3QgVmVjdG9yPFVDaGFyPiYgYik7CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF0
b21pY1N0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbChhLmltcGwoKSwg
Yi5pbXBsKCkpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGNoYXIqIGEsIGNvbnN0
IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gYiA9PSBhOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgQXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiBlcXVh
bChhLmltcGwoKSwgYi5pbXBsKCkpOyB9CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZl
Y3RvcjxVQ2hhcj4mIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gYiA9PSBhOyB9
CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQXRvbWljU3RyaW5nJiBhLCBjb25zdCBB
dG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGEuaW1wbCgpICE9IGIuaW1wbCgpOyB9CiBpbmxpbmUg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3QgY2hhciAqYikgeyBy
ZXR1cm4gIShhID09IGIpOyB9CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEF0b21pY1N0
cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiAhZXF1YWwoYS5pbXBsKCksIGIuaW1w
bCgpKTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNv
bnN0IFZlY3RvcjxVQ2hhcj4mIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQogaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBjaGFyKiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJu
ICEoYiA9PSBhKTsgfQogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNv
bnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gIWVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7
IH0KK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgVmVjdG9yPFVDaGFyPiYgYSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAogaW5saW5lIGJvb2wgZXF1
YWxJZ25vcmluZ0Nhc2UoY29uc3QgQXRvbWljU3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcm
IGIpIHsgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKGEuaW1wbCgpLCBiLmltcGwoKSk7IH0KIGlu
bGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3Qg
Y2hhciogYikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UoYS5pbXBsKCksIGIpOyB9Cg==
</data>
<flag name="review"
          id="58535"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>