<?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>29118</bug_id>
          
          <creation_ts>2009-09-09 23:17:10 -0700</creation_ts>
          <short_desc>StringHash support searching for empty/null strings rather than requiring callers to explicitly check</short_desc>
          <delta_ts>2009-11-09 17:46:25 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146088</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-09 23:17:10 -0700</bug_when>
    <thetext>Some functions in StringHash.h don&apos;t handle cases that StringImpl* is NULL.
So, for example,

   HashMap&lt;String, xxx, StringHash&gt; map;
   ...
   map.contains(String());

This code crashes.

I don&apos;t know if this makes real crashes in WebKit browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146091</commentid>
    <comment_count>1</comment_count>
      <attachid>39324</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-09 23:32:12 -0700</bug_when>
    <thetext>Created attachment 39324
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146189</commentid>
    <comment_count>2</comment_count>
      <attachid>39324</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 07:16:15 -0700</bug_when>
    <thetext>Comment on attachment 39324
Proposed patch

I don&apos;t see the point of this. What&apos;s the benefit of this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146207</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-10 08:45:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 39324 [details])
&gt; I don&apos;t see the point of this. What&apos;s the benefit of this change?

With the patch, we don&apos;t need to worry about nullness of String instances for map keys.  A concrete example is here: https://bugs.webkit.org/attachment.cgi?id=39342&amp;action=review
This code treats an attribute value String as a map key.
If we use String for a map key type, we expect we can use arbitrary instances of String for keys.  However, null String makes crash.

The current StringHash implementation is inconsistent.  equal() function handles null Strings though hash() function doesn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146214</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-10 09:05:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
Simply saying, we need to write null-check for String-key maps for now in order to avoid crash.
  HashMap&lt;String, xxx, StringHash&gt; map;
  ...
  if (!str.isNull() &amp;&amp; map.contais(str)) ...
We can remove &quot;!str.isNull() &amp;&amp;&quot; with this patch.

Null strings can not be a registered key even with the patch.  I think it&apos;s ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146216</commentid>
    <comment_count>5</comment_count>
      <attachid>39324</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 09:16:54 -0700</bug_when>
    <thetext>Comment on attachment 39324
Proposed patch

We made this tradeoff when designing the hash tables in the first place. This change adds a null check branch to all maps with string keys. So the tradeoff is an extra branch in the code path for maps where the key is known to not be null. Is that the right tradeoff? I&apos;d like to hear Maciej&apos;s thoughts on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146434</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-10 18:52:37 -0700</bug_when>
    <thetext>We have some choices:
 a) No code change
    - add a comment about no null-String support
    - add assertion for null String
 b) Add support for null strings to StringHash
 c) Add new hash function classes with null String support; StringHashWithNull, CaseFoldingHashWithNull</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146660</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-11 11:20:57 -0700</bug_when>
    <thetext>Lets get a comment from Maciej.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149451</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-23 10:54:40 -0700</bug_when>
    <thetext>Please email Maciej directly, since he tends to be busy, and has not replied in the bug in 12 days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149935</commentid>
    <comment_count>9</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-09-24 22:24:55 -0700</bug_when>
    <thetext>It seems like a tradeoff of performance (potentially) vs slightly easier to use API. It&apos;s hard to say offhand which is better. Do we have any testing to determine if this change has performance impact?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149936</commentid>
    <comment_count>10</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-09-24 22:27:11 -0700</bug_when>
    <thetext>Also, is there a count or estimate of how many null checks we could remove if we made this StringHash change? That would show the potential benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150811</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-29 00:06:58 -0700</bug_when>
    <thetext>I checked some instances of HashMap&lt;String, ...&gt;.  I couldn&apos;t find any instances for which we can remove null-checks.
 - Many of them had no null-checks.  I&apos;m not sure whether they actually needed no null-checks.
 - Some of them had null-checks, but we can not remove them because the strings are used not only for HashMap keys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154412</commentid>
    <comment_count>12</comment_count>
      <attachid>39324</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-13 13:27:53 -0700</bug_when>
    <thetext>Comment on attachment 39324
Proposed patch

I like the part of this change that removes a bunch of copy-paste code having to do with avalanches.  It seems like we can unblock this bug with:

1) Benchmarks that show this change doesn&apos;t slow us down too much.
2) Examples of crashes that this change fixes.

Until we get this data, this patch isn&apos;t really suitable for reviewing.  Feel free to re-nominate when you provide the data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156085</commentid>
    <comment_count>13</comment_count>
      <attachid>41487</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-19 23:59:42 -0700</bug_when>
    <thetext>Created attachment 41487
Proposed patch (rev.2)

&gt; 1) Benchmarks that show this change doesn&apos;t slow us down too much.

What&apos;s a good way to have benchmarks of WebKit?

&gt; 2) Examples of crashes that this change fixes.

I couldn&apos;t find examples in the existing code.
Comment #3 is the only example.


Anyway, I minimized the patch.
I&apos;ll satisfy myself of it :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156238</commentid>
    <comment_count>14</comment_count>
      <attachid>41487</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-20 12:07:01 -0700</bug_when>
    <thetext>Comment on attachment 41487
Proposed patch (rev.2)

Extra newline in ChangeLog.  Otherwise this looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156426</commentid>
    <comment_count>15</comment_count>
      <attachid>41552</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-21 00:42:42 -0700</bug_when>
    <thetext>Created attachment 41552
Proposed patch (rev.3)

- Remove a blank line
- &quot;doesn&apos;t&quot; -&gt; &quot;don&apos;t&quot; in the comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160479</commentid>
    <comment_count>16</comment_count>
      <attachid>41552</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-04 10:05:31 -0800</bug_when>
    <thetext>Comment on attachment 41552
Proposed patch (rev.3)

+    // hash() functions of StringHash and CaseFoldingHash don&apos;t support for
+    // null strings. get(), contains(), add() of HashMap&lt;String,..., StringHash&gt;
+    // for null strings cause null-pointer dereference.

So I would re-write this as:

The hash() functions on StringHash and CaseFoldingHash do not support null strings.  get(), contains() and add() on HashMap&lt;String, ... , StringHash&gt; cause a null-pointer dereference when passed null strings.

It&apos;s close as is, but doesn&apos;t quite flow as english.  (Although it flows *way* better than any attempt of mine to write japanese!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161058</commentid>
    <comment_count>17</comment_count>
      <attachid>42625</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-05 20:26:43 -0800</bug_when>
    <thetext>Created attachment 42625
Proposed patch (rev.4)

- Updated the comment

Correcting my English is very helpful.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161185</commentid>
    <comment_count>18</comment_count>
      <attachid>42625</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-06 11:22:23 -0800</bug_when>
    <thetext>Comment on attachment 42625
Proposed patch (rev.4)

&gt; +    // hbThe ash() functions on StringHash and CaseFoldingHash do not support

Note the garbled text at the beginning of this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161474</commentid>
    <comment_count>19</comment_count>
      <attachid>42725</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-08 18:32:50 -0800</bug_when>
    <thetext>Created attachment 42725
Proposed patch (rev.5)

- Fixed the garbled text ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161866</commentid>
    <comment_count>20</comment_count>
      <attachid>42725</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-09 17:46:20 -0800</bug_when>
    <thetext>Comment on attachment 42725
Proposed patch (rev.5)

Clearing flags on attachment: 42725

Committed r50702: &lt;http://trac.webkit.org/changeset/50702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161867</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-09 17:46:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39324</attachid>
            <date>2009-09-09 23:32:12 -0700</date>
            <delta_ts>2009-10-19 23:59:42 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>null-string-hash-1.diff</filename>
            <type>text/plain</type>
            <size>8262</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4MjQ1YTdjLi4xM2NkNDI1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMDktMDktMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gQWRkIGEgY29uc3Rh
bnQgdmFyaWFibGUgZm9yIGFuIGVtcHR5IHN0cmluZyBoYXNoLgorICAgICAgICAtIEFkZCBhIGZ1
bmN0aW9uIHRvIHJlZHVjZSBzdHJpbmcgaGFzaGluZyBjb2RlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxMTgKKworICAgICAgICAqIHd0Zi9IYXNo
RnVuY3Rpb25zLmg6CisgICAgICAgIChXVEY6OmF2YWxhbmNoZVN0cmluZ0hhc2gpOgorCiAyMDA5
LTA5LTA5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi9IYXNoRnVuY3Rpb25zLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvSGFzaEZ1bmN0aW9ucy5o
CmluZGV4IDEzYWZiNzIuLmM1ZGJhNjcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9I
YXNoRnVuY3Rpb25zLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hGdW5jdGlvbnMuaApA
QCAtMTc2LDYgKzE3NiwyNCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAKICAgICAvLyBHb2xkZW4g
cmF0aW8gLSBhcmJpdHJhcnkgc3RhcnQgdmFsdWUgdG8gYXZvaWQgbWFwcGluZyBhbGwgMCdzIHRv
IGFsbCAwJ3MKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3RyaW5nSGFzaGluZ1N0YXJ0VmFs
dWUgPSAweDllMzc3OWI5VTsKKyAgICAvLyBUaGUgaGFzaCB2YWx1ZSBmb3IgYW4gZW1wdHkgc3Ry
aW5nLgorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudWxsU3RyaW5nSGFzaFZhbHVlID0gMHgw
NGVjODg5ZTsKKworICAgIGlubGluZSB1bnNpZ25lZCBhdmFsYW5jaGVTdHJpbmdIYXNoKHVuc2ln
bmVkIGhhc2gpCisgICAgeworICAgICAgICAvLyBGb3JjZSAiYXZhbGFuY2hpbmciIG9mIGZpbmFs
IDEyNyBiaXRzLgorICAgICAgICBoYXNoIF49IGhhc2ggPDwgMzsKKyAgICAgICAgaGFzaCArPSBo
YXNoID4+IDU7CisgICAgICAgIGhhc2ggXj0gaGFzaCA8PCAyOworICAgICAgICBoYXNoICs9IGhh
c2ggPj4gMTU7CisgICAgICAgIGhhc2ggXj0gaGFzaCA8PCAxMDsKKworICAgICAgICAvLyBUaGlz
IGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5jZSB0aGF0IGlzIHVz
ZWQgdG8KKyAgICAgICAgLy8gc2lnbmFsICJoYXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1c2luZyBh
IHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJlCisgICAgICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBz
YW1lIGFzIDAgd2hlbiB0aGUgbG93IGJpdHMgYXJlIG1hc2tlZC4KKyAgICAgICAgaGFzaCB8PSAh
aGFzaCA8PCAzMTsKKyAgICAgICAgcmV0dXJuIGhhc2g7CisgICAgfQogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyZTVhMTllLi44NTgyMWI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5LTA5LTA5ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAtIEZpeCBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2VzIGlu
IFN0cmluZ0hhc2guaC4KKyAgICAgICAgLSBTaGFyZSBzb21lIGNvZGUgb2Ygc3RyaW5nIGhhc2hp
bmcgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkxMTgKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U3RyaW5nSGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpDYXNl
Rm9sZGluZ0hhc2g6Omhhc2gpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5o
OgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nSW1wbDo6Y29tcHV0ZUhhc2gpOgorCiAyMDA5LTA5
LTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5n
SGFzaC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0hhc2guaAppbmRleCAzMzZkY2Uz
Li43ZWMxMzgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmgKQEAgLTM0LDcgKzM0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIGNsb3NlciB0byBoYXZpbmcgYWxsIHRoZSBu
ZWFybHktaWRlbnRpY2FsIGhhc2ggZnVuY3Rpb25zIGluIG9uZSBwbGFjZS4KIAogICAgIHN0cnVj
dCBTdHJpbmdIYXNoIHsKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goU3RyaW5nSW1wbCog
a2V5KSB7IHJldHVybiBrZXktPmhhc2goKTsgfQorICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChTdHJpbmdJbXBsKiBrZXkpIHsgcmV0dXJuICFrZXkgPyBXVEY6Om51bGxTdHJpbmdIYXNoVmFs
dWUgOiBrZXktPmhhc2goKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChTdHJpbmdJbXBs
KiBhLCBTdHJpbmdJbXBsKiBiKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYSA9PSBiKQpA
QCAtNjEsMTMgKzYxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
UmVmUHRyPFN0cmluZ0ltcGw+JiBrZXkpIHsgcmV0dXJuIGtleS0+aGFzaCgpOyB9CisgICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFJlZlB0cjxTdHJpbmdJbXBsPiYga2V5KSB7IHJl
dHVybiAha2V5ID8gV1RGOjpudWxsU3RyaW5nSGFzaFZhbHVlIDoga2V5LT5oYXNoKCk7IH0KICAg
ICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVmUHRyPFN0cmluZ0ltcGw+JiBhLCBjb25z
dCBSZWZQdHI8U3RyaW5nSW1wbD4mIGIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBl
cXVhbChhLmdldCgpLCBiLmdldCgpKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IFN0cmluZyYga2V5KSB7IHJldHVybiBrZXkuaW1wbCgpLT5oYXNoKCk7
IH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU3RyaW5nJiBrZXkpIHsgcmV0
dXJuICFrZXkuaW1wbCgpID8gV1RGOjpudWxsU3RyaW5nSGFzaFZhbHVlIDoga2V5LmltcGwoKS0+
aGFzaCgpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0cmluZyYgYSwgY29u
c3QgU3RyaW5nJiBiKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZXF1YWwoYS5pbXBs
KCksIGIuaW1wbCgpKTsKQEAgLTEwNSwyNSArMTA1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgICAgICBoYXNoIF49IGhhc2ggPDwgMTE7CiAgICAgICAgICAgICAgICAgaGFz
aCArPSBoYXNoID4+IDE3OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAg
ICAvLyBGb3JjZSAiYXZhbGFuY2hpbmciIG9mIGZpbmFsIDEyNyBiaXRzLgotICAgICAgICAgICAg
aGFzaCBePSBoYXNoIDw8IDM7Ci0gICAgICAgICAgICBoYXNoICs9IGhhc2ggPj4gNTsKLSAgICAg
ICAgICAgIGhhc2ggXj0gaGFzaCA8PCAyOwotICAgICAgICAgICAgaGFzaCArPSBoYXNoID4+IDE1
OwotICAgICAgICAgICAgaGFzaCBePSBoYXNoIDw8IDEwOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICAvLyBUaGlzIGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5j
ZSB0aGF0IGlzIHVzZWQgdG8KLSAgICAgICAgICAgIC8vIHNpZ25hbCAiaGFzaCBub3QgY29tcHV0
ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2VseSB0byBiZQotICAgICAgICAgICAg
Ly8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgMCB3aGVuIHRoZSBsb3cgYml0cyBhcmUgbWFza2Vk
LgotICAgICAgICAgICAgaGFzaCB8PSAhaGFzaCA8PCAzMTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgcmV0dXJuIGhhc2g7CisKKyAgICAgICAgICAgIHJldHVybiBXVEY6OmF2YWxhbmNoZVN0
cmluZ0hhc2goaGFzaCk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChTdHJpbmdJbXBsKiBzdHIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBoYXNoKHN0
ci0+Y2hhcmFjdGVycygpLCBzdHItPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiAhc3Ry
ID8gV1RGOjpudWxsU3RyaW5nSGFzaFZhbHVlIDogaGFzaChzdHItPmNoYXJhY3RlcnMoKSwgc3Ry
LT5sZW5ndGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IGNoYXIqIHN0ciwgdW5zaWduZWQgbGVuZ3RoKQpAQCAtMTU2LDE5ICsxNDQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgaGFzaCArPSBoYXNoID4+
IDE3OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBGb3JjZSAi
YXZhbGFuY2hpbmciIG9mIGZpbmFsIDEyNyBiaXRzCi0gICAgICAgICAgICBoYXNoIF49IGhhc2gg
PDwgMzsKLSAgICAgICAgICAgIGhhc2ggKz0gaGFzaCA+PiA1OwotICAgICAgICAgICAgaGFzaCBe
PSBoYXNoIDw8IDI7Ci0gICAgICAgICAgICBoYXNoICs9IGhhc2ggPj4gMTU7Ci0gICAgICAgICAg
ICBoYXNoIF49IGhhc2ggPDwgMTA7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIHRoaXMg
YXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNl
ZCB0bwotICAgICAgICAgICAgLy8gc2lnbmFsICJoYXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1c2lu
ZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJlCi0gICAgICAgICAgICAvLyBlZmZlY3RpdmVs
eSB0aGUgc2FtZSBhcyAwIHdoZW4gdGhlIGxvdyBiaXRzIGFyZSBtYXNrZWQKLSAgICAgICAgICAg
IGhhc2ggfD0gIWhhc2ggPDwgMzE7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHJldHVybiBo
YXNoOworICAgICAgICAgICAgcmV0dXJuIFdURjo6YXZhbGFuY2hlU3RyaW5nSGFzaChoYXNoKTsK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoU3RyaW5nSW1w
bCogYSwgU3RyaW5nSW1wbCogYikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9T
dHJpbmdJbXBsLmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDhi
NGU4MmQuLmU4ODc5OWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdJ
bXBsLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+
CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL093bkZhc3RNYWxsb2NQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QdHJBbmRGbGFncy5oPgpAQCAt
MjI1LDE1ICsyMjYsMTEgQEAgaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2UoY29uc3QgY2hh
ciogYSwgY29uc3QgVUNoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkgewogCiBib29sIGVxdWFsSWdu
b3JpbmdOdWxsaXR5KFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7CiAKLS8vIEdvbGRlbiByYXRp
byAtIGFyYml0cmFyeSBzdGFydCB2YWx1ZSB0byBhdm9pZCBtYXBwaW5nIGFsbCAwJ3MgdG8gYWxs
IDAncwotLy8gb3IgYW55dGhpbmcgbGlrZSB0aGF0LgotY29uc3QgdW5zaWduZWQgcGhpID0gMHg5
ZTM3NzliOVU7Ci0KIC8vIFBhdWwgSHNpZWgncyBTdXBlckZhc3RIYXNoCiAvLyBodHRwOi8vd3d3
LmF6aWxsaW9ubW9ua2V5cy5jb20vcWVkL2hhc2guaHRtbAogaW5saW5lIHVuc2lnbmVkIFN0cmlu
Z0ltcGw6OmNvbXB1dGVIYXNoKGNvbnN0IFVDaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7
Ci0gICAgdW5zaWduZWQgaGFzaCA9IHBoaTsKKyAgICB1bnNpZ25lZCBoYXNoID0gV1RGOjpzdHJp
bmdIYXNoaW5nU3RhcnRWYWx1ZTsKICAgICAKICAgICAvLyBNYWluIGxvb3AuCiAgICAgZm9yICh1
bnNpZ25lZCBwYWlyQ291bnQgPSBsZW5ndGggPj4gMTsgcGFpckNvdW50OyBwYWlyQ291bnQtLSkg
ewpAQCAtMjUxLDE5ICsyNDgsNyBAQCBpbmxpbmUgdW5zaWduZWQgU3RyaW5nSW1wbDo6Y29tcHV0
ZUhhc2goY29uc3QgVUNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgaGFzaCAr
PSBoYXNoID4+IDE3OwogICAgIH0KIAotICAgIC8vIEZvcmNlICJhdmFsYW5jaGluZyIgb2YgZmlu
YWwgMTI3IGJpdHMuCi0gICAgaGFzaCBePSBoYXNoIDw8IDM7Ci0gICAgaGFzaCArPSBoYXNoID4+
IDU7Ci0gICAgaGFzaCBePSBoYXNoIDw8IDI7Ci0gICAgaGFzaCArPSBoYXNoID4+IDE1OwotICAg
IGhhc2ggXj0gaGFzaCA8PCAxMDsKLQotICAgIC8vIFRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5n
IGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAgIC8vIHNpZ25hbCAi
aGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2VseSB0byBi
ZQotICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJpdHMgYXJl
IG1hc2tlZC4KLSAgICBoYXNoIHw9ICFoYXNoIDw8IDMxOwotICAgIAotICAgIHJldHVybiBoYXNo
OworICAgIHJldHVybiBXVEY6OmF2YWxhbmNoZVN0cmluZ0hhc2goaGFzaCk7CiB9CiAKIC8vIFBh
dWwgSHNpZWgncyBTdXBlckZhc3RIYXNoCkBAIC0yNzQsNyArMjU5LDcgQEAgaW5saW5lIHVuc2ln
bmVkIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKGNvbnN0IGNoYXIqIGRhdGEpCiAgICAgLy8gKGFi
b3ZlKSBpcyB0byBoYXNoIFVURi0xNiBjaGFyYWN0ZXJzLCB3ZSBqdXN0IHRyZWF0IHRoZSA4LWJp
dCBjaGFycyBhcyBpZiB0aGV5CiAgICAgLy8gd2VyZSAxNi1iaXQgY2h1bmtzLCB3aGljaCBzaG91
bGQgZ2l2ZSBtYXRjaGluZyByZXN1bHRzCiAKLSAgICB1bnNpZ25lZCBoYXNoID0gcGhpOworICAg
IHVuc2lnbmVkIGhhc2ggPSBXVEY6OnN0cmluZ0hhc2hpbmdTdGFydFZhbHVlOwogICAgIAogICAg
IC8vIE1haW4gbG9vcAogICAgIGZvciAoOzspIHsKQEAgLTI5NSwxOSArMjgwLDcgQEAgaW5saW5l
IHVuc2lnbmVkIFN0cmluZ0ltcGw6OmNvbXB1dGVIYXNoKGNvbnN0IGNoYXIqIGRhdGEpCiAgICAg
ICAgIGhhc2ggKz0gaGFzaCA+PiAxMTsKICAgICB9CiAgICAgCi0gICAgLy8gRm9yY2UgImF2YWxh
bmNoaW5nIiBvZiBmaW5hbCAxMjcgYml0cy4KLSAgICBoYXNoIF49IGhhc2ggPDwgMzsKLSAgICBo
YXNoICs9IGhhc2ggPj4gNTsKLSAgICBoYXNoIF49IGhhc2ggPDwgMjsKLSAgICBoYXNoICs9IGhh
c2ggPj4gMTU7Ci0gICAgaGFzaCBePSBoYXNoIDw8IDEwOwotCi0gICAgLy8gVGhpcyBhdm9pZHMg
ZXZlciByZXR1cm5pbmcgYSBoYXNoIGNvZGUgb2YgMCwgc2luY2UgdGhhdCBpcyB1c2VkIHRvCi0g
ICAgLy8gc2lnbmFsICJoYXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1c2luZyBhIHZhbHVlIHRoYXQg
aXMgbGlrZWx5IHRvIGJlCi0gICAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgMCB3aGVuIHRo
ZSBsb3cgYml0cyBhcmUgbWFza2VkLgotICAgIGhhc2ggfD0gIWhhc2ggPDwgMzE7Ci0gICAgCi0g
ICAgcmV0dXJuIGhhc2g7CisgICAgcmV0dXJuIFdURjo6YXZhbGFuY2hlU3RyaW5nSGFzaChoYXNo
KTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzU3BhY2VPck5ld2xpbmUoVUNoYXIgYykK
</data>
<flag name="review"
          id="20411"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41487</attachid>
            <date>2009-10-19 23:59:42 -0700</date>
            <delta_ts>2009-10-21 00:42:42 -0700</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>0001-stringhash-comment.patch</filename>
            <type>text/plain</type>
            <size>1554</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBlODEzNWE3YTRmM2M5YWFlOGU3MDA3OTc1YmI2YmUzNGFiZTU1OGY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIwIE9jdCAyMDA5IDE1OjQ4OjQyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RyaW5n
aGFzaCBjb21tZW50CgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAg
IDEwICsrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmggfCAgICA0
ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDRhZWIwOTYuLjU5NDk2OTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTAtMTkgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIGNvbW1lbnQgYWJvdXQgbnVsbCBzdHJpbmdzIGFuZCBoYXNo
IGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI5MTE4CisKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oOgorCiAy
MDA5LTEwLTE5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm8g
cmV2aWV3LCByb2xsaW5nIG91dCByNDk4MzcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvU3RyaW5nSGFzaC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0hhc2guaApp
bmRleCAzMzZkY2UzLi5mNTdkMzc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
U3RyaW5nSGFzaC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmgKQEAg
LTI5LDYgKzI5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIC8vIGhhc2goKSBm
dW5jdGlvbnMgb2YgU3RyaW5nSGFzaCBhbmQgQ2FzZUZvbGRpbmdIYXNoIGRvZXNuJ3Qgc3VwcG9y
dCBmb3IKKyAgICAvLyBudWxsIHN0cmluZ3MuIGdldCgpLCBjb250YWlucygpLCBhZGQoKSBvZiBI
YXNoTWFwPFN0cmluZywuLi4sIFN0cmluZ0hhc2g+CisgICAgLy8gZm9yIG51bGwgc3RyaW5ncyBj
YXVzZSBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UuCisKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHJlYWxseSBmaWd1cmUgb3V0IGEgd2F5IHRvIHB1dCB0aGUgY29tcHV0ZUhhc2ggZnVuY3Rpb24g
dGhhdCdzCiAgICAgLy8gY3VycmVudGx5IGEgbWVtYmVyIGZ1bmN0aW9uIG9mIFN0cmluZ0ltcGwg
aW50byB0aGlzIGZpbGUgc28gd2UgY2FuIGJlIGEgbGl0dGxlCiAgICAgLy8gY2xvc2VyIHRvIGhh
dmluZyBhbGwgdGhlIG5lYXJseS1pZGVudGljYWwgaGFzaCBmdW5jdGlvbnMgaW4gb25lIHBsYWNl
LgotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="22894"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="22931"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41552</attachid>
            <date>2009-10-21 00:42:42 -0700</date>
            <delta_ts>2009-11-05 20:26:43 -0800</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>0001-stringhash-comment-2.patch</filename>
            <type>text/plain</type>
            <size>1553</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAzZTIyZDQwNWZiYjljODQxYmRlZDFkMWZiMTdkNzJkODkxZDM4OTJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIwIE9jdCAyMDA5IDE1OjQ4OjQyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RyaW5n
aGFzaC1jb21tZW50LTIKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICB8
ICAgIDkgKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oIHwgICAg
NCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAwZWM1YTA5Li43NWJjNTA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEwLTE5ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBjb21tZW50IGFib3V0IG51bGwgc3RyaW5ncyBhbmQgaGFz
aCBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTExOAorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmg6CisKIDIw
MDktMTAtMjEgIFNhdG9zaGkgTmFrYWdhd2EgIDxwc3ljaHNAbGltZWNoYXQubmV0PgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1N0cmluZ0hhc2guaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmgK
aW5kZXggMzM2ZGNlMy4uZjM5NzBiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1N0cmluZ0hhc2guaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oCkBA
IC0yOSw2ICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICAvLyBoYXNoKCkg
ZnVuY3Rpb25zIG9mIFN0cmluZ0hhc2ggYW5kIENhc2VGb2xkaW5nSGFzaCBkb24ndCBzdXBwb3J0
IGZvcgorICAgIC8vIG51bGwgc3RyaW5ncy4gZ2V0KCksIGNvbnRhaW5zKCksIGFkZCgpIG9mIEhh
c2hNYXA8U3RyaW5nLC4uLiwgU3RyaW5nSGFzaD4KKyAgICAvLyBmb3IgbnVsbCBzdHJpbmdzIGNh
dXNlIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZS4KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cmVhbGx5IGZpZ3VyZSBvdXQgYSB3YXkgdG8gcHV0IHRoZSBjb21wdXRlSGFzaCBmdW5jdGlvbiB0
aGF0J3MKICAgICAvLyBjdXJyZW50bHkgYSBtZW1iZXIgZnVuY3Rpb24gb2YgU3RyaW5nSW1wbCBp
bnRvIHRoaXMgZmlsZSBzbyB3ZSBjYW4gYmUgYSBsaXR0bGUKICAgICAvLyBjbG9zZXIgdG8gaGF2
aW5nIGFsbCB0aGUgbmVhcmx5LWlkZW50aWNhbCBoYXNoIGZ1bmN0aW9ucyBpbiBvbmUgcGxhY2Uu
Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42625</attachid>
            <date>2009-11-05 20:26:43 -0800</date>
            <delta_ts>2009-11-08 18:32:50 -0800</delta_ts>
            <desc>Proposed patch (rev.4)</desc>
            <filename>0001-stringhash-comment-4.patch</filename>
            <type>text/plain</type>
            <size>1572</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBjMTkyZmY0ZWY4M2U1NTg1NjFhNDllNzc5ZTJkYTI4ZmYyOWNjZDA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIwIE9jdCAyMDA5IDE1OjQ4OjQyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RyaW5n
aGFzaC1jb21tZW50LTQKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICB8
ICAgIDkgKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oIHwgICAg
NCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBlMGQ5NjY1Li43MDlhYzRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEwLTE5ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBjb21tZW50IGFib3V0IG51bGwgc3RyaW5ncyBhbmQgaGFz
aCBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTExOAorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmg6CisKIDIw
MDktMTEtMDUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1N0cmluZ0hhc2guaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNo
LmgKaW5kZXggMzM2ZGNlMy4uNDQzMDk0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1N0cmluZ0hhc2guaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5o
CkBAIC0yOSw2ICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICAvLyBoYlRo
ZSBhc2goKSBmdW5jdGlvbnMgb24gU3RyaW5nSGFzaCBhbmQgQ2FzZUZvbGRpbmdIYXNoIGRvIG5v
dCBzdXBwb3J0CisgICAgLy8gbnVsbCBzdHJpbmdzLiBnZXQoKSwgY29udGFpbnMoKSwgYW5kIGFk
ZCgpIG9uIEhhc2hNYXA8U3RyaW5nLC4uLiwgU3RyaW5nSGFzaD4KKyAgICAvLyBjYXVzZSBhIG51
bGwtcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIHBhc3NlZCBudWxsIHN0cmluZ3MuCisKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHJlYWxseSBmaWd1cmUgb3V0IGEgd2F5IHRvIHB1dCB0aGUgY29t
cHV0ZUhhc2ggZnVuY3Rpb24gdGhhdCdzCiAgICAgLy8gY3VycmVudGx5IGEgbWVtYmVyIGZ1bmN0
aW9uIG9mIFN0cmluZ0ltcGwgaW50byB0aGlzIGZpbGUgc28gd2UgY2FuIGJlIGEgbGl0dGxlCiAg
ICAgLy8gY2xvc2VyIHRvIGhhdmluZyBhbGwgdGhlIG5lYXJseS1pZGVudGljYWwgaGFzaCBmdW5j
dGlvbnMgaW4gb25lIHBsYWNlLgotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="24189"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42725</attachid>
            <date>2009-11-08 18:32:50 -0800</date>
            <delta_ts>2009-11-09 17:46:20 -0800</delta_ts>
            <desc>Proposed patch (rev.5)</desc>
            <filename>0001-stringhash-comment-5.patch</filename>
            <type>text/plain</type>
            <size>1571</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBhNzEzZWU4MGY0MmViNDQzZTgxMDljODc5YzA3NjgwODlmMTk0ZjVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIwIE9jdCAyMDA5IDE1OjQ4OjQyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc3RyaW5n
aGFzaC1jb21tZW50LTUKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICB8
ICAgIDkgKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oIHwgICAg
NCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBlMGQ5NjY1Li43MDlhYzRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEwLTE5ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBjb21tZW50IGFib3V0IG51bGwgc3RyaW5ncyBhbmQgaGFz
aCBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTExOAorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmg6CisKIDIw
MDktMTEtMDUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1N0cmluZ0hhc2guaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNo
LmgKaW5kZXggMzM2ZGNlMy4uNTg0YjY3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1N0cmluZ0hhc2guaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5o
CkBAIC0yOSw2ICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICAvLyBUaGUg
aGFzaCgpIGZ1bmN0aW9ucyBvbiBTdHJpbmdIYXNoIGFuZCBDYXNlRm9sZGluZ0hhc2ggZG8gbm90
IHN1cHBvcnQKKyAgICAvLyBudWxsIHN0cmluZ3MuIGdldCgpLCBjb250YWlucygpLCBhbmQgYWRk
KCkgb24gSGFzaE1hcDxTdHJpbmcsLi4uLCBTdHJpbmdIYXNoPgorICAgIC8vIGNhdXNlIGEgbnVs
bC1wb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gcGFzc2VkIG51bGwgc3RyaW5ncy4KKwogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5IGZpZ3VyZSBvdXQgYSB3YXkgdG8gcHV0IHRoZSBjb21w
dXRlSGFzaCBmdW5jdGlvbiB0aGF0J3MKICAgICAvLyBjdXJyZW50bHkgYSBtZW1iZXIgZnVuY3Rp
b24gb2YgU3RyaW5nSW1wbCBpbnRvIHRoaXMgZmlsZSBzbyB3ZSBjYW4gYmUgYSBsaXR0bGUKICAg
ICAvLyBjbG9zZXIgdG8gaGF2aW5nIGFsbCB0aGUgbmVhcmx5LWlkZW50aWNhbCBoYXNoIGZ1bmN0
aW9ucyBpbiBvbmUgcGxhY2UuCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>