<?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>34864</bug_id>
          
          <creation_ts>2010-02-11 15:54:13 -0800</creation_ts>
          <short_desc>Many objects left uncollected after visiting mail.google.com and closing window</short_desc>
          <delta_ts>2010-02-11 21:02:50 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>189822</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 15:54:13 -0800</bug_when>
    <thetext>Many objects left uncollected after visiting mail.google.com and closing window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189823</commentid>
    <comment_count>1</comment_count>
      <attachid>48594</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 15:54:28 -0800</bug_when>
    <thetext>Created attachment 48594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189869</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 18:51:47 -0800</bug_when>
    <thetext>Committed r54696: &lt;http://trac.webkit.org/changeset/54696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189915</commentid>
    <comment_count>3</comment_count>
      <attachid>48619</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 20:36:12 -0800</bug_when>
    <thetext>Created attachment 48619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189916</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 20:38:21 -0800</bug_when>
    <thetext>Reopening to post the second half of this fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189917</commentid>
    <comment_count>5</comment_count>
      <attachid>48619</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-11 20:40:49 -0800</bug_when>
    <thetext>Comment on attachment 48619
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189918</commentid>
    <comment_count>6</comment_count>
      <attachid>48619</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-11 20:42:05 -0800</bug_when>
    <thetext>Comment on attachment 48619
Patch

&gt; +        Don&apos;t unconditionally hang onto small strings. Instead, hang onto all
&gt; +        small strings as long as any small string is still referenced.

What is the reasoning for that rule? I&apos;m sure it&apos;s a good idea, but I think SmallStrings::markChildren should have a &quot;why&quot; comment in it explaining why it is.

&gt; +        if (isMarked(m_singleCharacterStrings[i]))
&gt; +            isAnyStringMarked = true;

I suggest just doing assignment here instead of an if statement to save a branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189920</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 21:01:14 -0800</bug_when>
    <thetext>Committed r54701: &lt;http://trac.webkit.org/changeset/54701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189922</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-11 21:02:50 -0800</bug_when>
    <thetext>&gt; What is the reasoning for that rule? I&apos;m sure it&apos;s a good idea, but I think
&gt; SmallStrings::markChildren should have a &quot;why&quot; comment in it explaining why it
&gt; is.

Added this comment:

    /*
       Our hypothesis is that small strings are very common. So, we cache them
       to avoid GC churn. However, in cases where this hypothesis turns out to
       be false -- including the degenerate case where all JavaScript execution
       has terminated -- we don&apos;t want to waste memory.

       To test our hypothesis, we check if any small string has been marked. If
       so, it&apos;s probably reasonable to mark the rest. If not, we clear the cache.
     */

&gt; &gt; +        if (isMarked(m_singleCharacterStrings[i]))
&gt; &gt; +            isAnyStringMarked = true;
&gt; 
&gt; I suggest just doing assignment here instead of an if statement to save a
&gt; branch.

Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48594</attachid>
            <date>2010-02-11 15:54:28 -0800</date>
            <delta_ts>2010-02-11 20:37:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34864-20100211155427.patch</filename>
            <type>text/plain</type>
            <size>6705</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0NjgzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDItMTEgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTb21lIHByb2dyZXNzIHRvd2FyZCBmaXhpbmcgPHJkYXI6Ly9w
cm9ibGVtLzc1OTQxOTg+IE1hbnkgb2JqZWN0cyBsZWZ0CisgICAgICAgIHVuY29sbGVjdGVkIGFm
dGVyIHZpc2l0aW5nIG1haWwuZ29vZ2xlLmNvbSBhbmQgY2xvc2luZyB3aW5kb3cKKyAgICAgICAg
CisgICAgICAgIFN1blNwaWRlciByZXBvcnRzIG5vIGNoYW5nZS4KKyAgICAgICAgCisgICAgICAg
IEtlZXAgd2VhayByZWZlcmVuY2VzLCByYXRoZXIgdGhhbiBwcm90ZWN0ZWQgcmVmZXJlbmNlcywg
dG8gY2FjaGVkIGZvci1pbgorICAgICAgICBwcm9wZXJ0eSBuYW1lIGVudW1lcmF0b3JzLgorICAg
ICAgICAKKyAgICAgICAgT25lIHByb2JsZW0gd2l0aCBwcm90ZWN0ZWQgcmVmZXJlbmNlcyBpcyB0
aGF0IGEgY2hhaW4gbGlrZSAKKyAgICAgICAgICAgIFsgZ2Mgb2JqZWN0IDEgXSA9PiBbIG5vbi1n
YyBvYmplY3QgXSA9PiBbIGdjIG9iamVjdCAyIF0KKyAgICAgICAgdGFrZXMgdHdvIEdDIHBhc3Nl
cyB0byBicmVhaywgc2luY2UgdGhlIGZpcnN0IHBhc3MgY29sbGVjdHMgWyBnYyBvYmplY3QgMSBd
LAorICAgICAgICByZWxlYXNpbmcgWyBub24tZ2Mgb2JqZWN0IF0gYW5kIHVucHJvdGVjdGluZyBb
IGdjIG9iamVjdCAyIF0sIGFuZCBvbmx5CisgICAgICAgIHRoZW4gY2FuIGEgc2Vjb25kIHBhc3Mg
Y29sbGVjdCBbIGdjIG9iamVjdCAyIF0uCisgICAgICAgIAorICAgICAgICBBbm90aGVyIHByb2Js
ZW0gd2l0aCBwcm90ZWN0ZWQgcmVmZXJlbmNlcyBpcyB0aGF0IHRoZXkgY2FuIGtlZXAgYSBidW5j
aAorICAgICAgICBvZiBzdHJpbmdzIGFsaXZlIGxvbmcgYWZ0ZXIgdGhleSdyZSB1c2VmdWwuIElu
IFN1blNwaWRlciBhbmQgYSBmZXcgcG9wdWxhcgorICAgICAgICB3ZWJzaXRlcywgdGhlIHNpemUt
c3BlZWQgdHJhZGVvZmYgc2VlbXMgdG8gZmF2b3Igd2VhayByZWZlcmVuY2VzLgorCisgICAgICAg
ICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcik6IE1vdmVkIHRoaXMg
Y29uc3RydWN0b3IKKyAgICAgICAgaW50byB0aGUgLmNwcCBmaWxlLCBzaW5jZSBpdCdzIG5vdCB1
c2VkIGVsc2V3aGVyZS4KKworICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjp+
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcik6IEFkZGVkIGEgZGVzdHJ1Y3RvcgorICAgICAgICB0byBz
dXBwb3J0IG91ciB3ZWFrIHJlZmVyZW5jZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnNldEVudW1lcmF0aW9u
Q2FjaGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNsZWFyRW51bWVyYXRpb25DYWNoZSk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZW51bWVyYXRpb25DYWNoZSk6IEFkZGVkIGEgZnVu
Y3Rpb24gZm9yIGNsZWFyaW5nIGEKKyAgICAgICAgU3RydWN0dXJlJ3MgZW51bWVyYXRpb24gY2Fj
aGUsIHVzZWQgYnkgb3VyIG5ldyBkZXN0cnVjdG9yLiBBbHNvIGZpeGVkCisgICAgICAgIGluZGVu
dGF0aW9uIHRvIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBmaWxlLgorCisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmUuaDogQ2hhbmdlZCBmcm9tIHByb3RlY3RlZCBwb2ludGVyIHRvIHdlYWsgcG9p
bnRlci4KKwogMjAxMC0wMi0xMCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCShyZXZpc2lvbiA1NDY3
MikKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDI0IEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NF
UlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IpOwogCitpbmxpbmUg
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5RGF0YSogcHJvcGVydHlOYW1lQXJyYXlEYXRhLCBzaXpl
X3QgbnVtQ2FjaGVhYmxlU2xvdHMpCisgICAgOiBKU0NlbGwoZXhlYy0+Z2xvYmFsRGF0YSgpLnBy
b3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlLmdldCgpKQorICAgICwgbV9jYWNoZWRTdHJ1Y3R1
cmUoMCkKKyAgICAsIG1fbnVtQ2FjaGVhYmxlU2xvdHMobnVtQ2FjaGVhYmxlU2xvdHMpCisgICAg
LCBtX2pzU3RyaW5nc1NpemUocHJvcGVydHlOYW1lQXJyYXlEYXRhLT5wcm9wZXJ0eU5hbWVWZWN0
b3IoKS5zaXplKCkpCisgICAgLCBtX2pzU3RyaW5ncyhuZXcgSlNWYWx1ZVttX2pzU3RyaW5nc1Np
emVdKQoreworICAgIFByb3BlcnR5TmFtZUFycmF5RGF0YTo6UHJvcGVydHlOYW1lVmVjdG9yJiBw
cm9wZXJ0eU5hbWVWZWN0b3IgPSBwcm9wZXJ0eU5hbWVBcnJheURhdGEtPnByb3BlcnR5TmFtZVZl
Y3RvcigpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9qc1N0cmluZ3NTaXplOyArK2kp
CisgICAgICAgIG1fanNTdHJpbmdzW2ldID0ganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0eU5h
bWVWZWN0b3JbaV0udXN0cmluZygpKTsKK30KKworSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6fkpT
UHJvcGVydHlOYW1lSXRlcmF0b3IoKQoreworICAgIGlmIChtX2NhY2hlZFN0cnVjdHVyZSkKKyAg
ICAgICAgbV9jYWNoZWRTdHJ1Y3R1cmUtPmNsZWFyRW51bWVyYXRpb25DYWNoZSh0aGlzKTsKK30K
KwogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG8pCiB7CiAgICAgQVNTRVJUKCFvLT5zdHJ1Y3R1
cmUoKS0+ZW51bWVyYXRpb25DYWNoZSgpIHx8CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAkocmV2aXNpb24gNTQ2NzIpCisrKyBKYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNDksNiArNDksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRU
eXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIH5KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCk7
CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzUHJvcGVydHlOYW1lSXRlcmF0b3IoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAKQEAgLTgxLDIzICs4MywyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgT3duQXJyYXlQdHI8SlNWYWx1ZT4gbV9qc1N0cmluZ3M7CiAgICAgfTsKIAotaW5saW5l
IEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3IoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheURhdGEqIHByb3BlcnR5TmFtZUFycmF5RGF0YSwgc2l6
ZV90IG51bUNhY2hlYWJsZVNsb3RzKQotICAgIDogSlNDZWxsKGV4ZWMtPmdsb2JhbERhdGEoKS5w
cm9wZXJ0eU5hbWVJdGVyYXRvclN0cnVjdHVyZS5nZXQoKSkKLSAgICAsIG1fY2FjaGVkU3RydWN0
dXJlKDApCi0gICAgLCBtX251bUNhY2hlYWJsZVNsb3RzKG51bUNhY2hlYWJsZVNsb3RzKQotICAg
ICwgbV9qc1N0cmluZ3NTaXplKHByb3BlcnR5TmFtZUFycmF5RGF0YS0+cHJvcGVydHlOYW1lVmVj
dG9yKCkuc2l6ZSgpKQotICAgICwgbV9qc1N0cmluZ3MobmV3IEpTVmFsdWVbbV9qc1N0cmluZ3NT
aXplXSkKLXsKLSAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6OlByb3BlcnR5TmFtZVZlY3RvciYg
cHJvcGVydHlOYW1lVmVjdG9yID0gcHJvcGVydHlOYW1lQXJyYXlEYXRhLT5wcm9wZXJ0eU5hbWVW
ZWN0b3IoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fanNTdHJpbmdzU2l6ZTsgKytp
KQotICAgICAgICBtX2pzU3RyaW5nc1tpXSA9IGpzT3duZWRTdHJpbmcoZXhlYywgcHJvcGVydHlO
YW1lVmVjdG9yW2ldLnVzdHJpbmcoKSk7Ci19Ci0KLWlubGluZSB2b2lkIFN0cnVjdHVyZTo6c2V0
RW51bWVyYXRpb25DYWNoZShKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBlbnVtZXJhdGlvbkNhY2hl
KQotewotICAgIEFTU0VSVCghaXNEaWN0aW9uYXJ5KCkpOwotICAgIG1fZW51bWVyYXRpb25DYWNo
ZSA9IGVudW1lcmF0aW9uQ2FjaGU7Ci19CisgICAgaW5saW5lIHZvaWQgU3RydWN0dXJlOjpzZXRF
bnVtZXJhdGlvbkNhY2hlKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUp
CisgICAgeworICAgICAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKKyAgICAgICAgbV9lbnVt
ZXJhdGlvbkNhY2hlID0gZW51bWVyYXRpb25DYWNoZTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9p
ZCBTdHJ1Y3R1cmU6OmNsZWFyRW51bWVyYXRpb25DYWNoZShKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
KiBlbnVtZXJhdGlvbkNhY2hlKQorICAgIHsKKyAgICAgICAgbV9lbnVtZXJhdGlvbkNhY2hlLmNs
ZWFyKGVudW1lcmF0aW9uQ2FjaGUpOworICAgIH0KKworICAgIGlubGluZSBKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yKiBTdHJ1Y3R1cmU6OmVudW1lcmF0aW9uQ2FjaGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fZW51bWVyYXRpb25DYWNoZS5nZXQoKTsKKyAgICB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDU0Njcy
KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIgog
I2luY2x1ZGUgIkpTVHlwZUluZm8uaCIKICNpbmNsdWRlICJVU3RyaW5nLmgiCisjaW5jbHVkZSAi
V2Vha0dDUHRyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCkBAIC0xMzUsNyArMTM2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZvaWQgZGlzYWJsZVNwZWNpZmljRnVuY3Rpb25UcmFja2luZygpIHsgbV9zcGVjaWZpY0Z1
bmN0aW9uVGhyYXNoQ291bnQgPSBtYXhTcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQ7IH0KIAog
ICAgICAgICB2b2lkIHNldEVudW1lcmF0aW9uQ2FjaGUoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciog
ZW51bWVyYXRpb25DYWNoZSk7IC8vIERlZmluZWQgaW4gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
LgotICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBlbnVtZXJhdGlvbkNhY2hlKCkgeyBy
ZXR1cm4gbV9lbnVtZXJhdGlvbkNhY2hlLmdldCgpOyB9CisgICAgICAgIHZvaWQgY2xlYXJFbnVt
ZXJhdGlvbkNhY2hlKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUpOyAv
LyBEZWZpbmVkIGluIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaC4KKyAgICAgICAgSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSgpOyAvLyBEZWZpbmVkIGluIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuaC4KICAgICAgICAgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUpOwogICAgICAgICAKICAgICBwcml2YXRl
OgpAQCAtMTk5LDcgKzIwMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFN0cnVjdHVy
ZVRyYW5zaXRpb25UYWJsZSB0YWJsZTsKIAotICAgICAgICBQcm90ZWN0ZWRQdHI8SlNQcm9wZXJ0
eU5hbWVJdGVyYXRvcj4gbV9lbnVtZXJhdGlvbkNhY2hlOworICAgICAgICBXZWFrR0NQdHI8SlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvcj4gbV9lbnVtZXJhdGlvbkNhY2hlOwogCiAgICAgICAgIFByb3Bl
cnR5TWFwSGFzaFRhYmxlKiBtX3Byb3BlcnR5VGFibGU7CiAK
</data>
<flag name="review"
          id="31330"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48619</attachid>
            <date>2010-02-11 20:36:12 -0800</date>
            <delta_ts>2010-02-11 20:42:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34864-20100211203611.patch</filename>
            <type>text/plain</type>
            <size>3240</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0Njk2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDItMTEgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgZml4IGZvcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NjQgfCA8cmRhcjovL3Byb2Js
ZW0vNzU5NDE5OD4KKyAgICAgICAgTWFueSBvYmplY3RzIGxlZnQgdW5jb2xsZWN0ZWQgYWZ0ZXIg
dmlzaXRpbmcgbWFpbC5nb29nbGUuY29tIGFuZCBjbG9zaW5nCisgICAgICAgIHdpbmRvdworICAg
ICAgICAKKyAgICAgICAgRG9uJ3QgdW5jb25kaXRpb25hbGx5IGhhbmcgb250byBzbWFsbCBzdHJp
bmdzLiBJbnN0ZWFkLCBoYW5nIG9udG8gYWxsCisgICAgICAgIHNtYWxsIHN0cmluZ3MgYXMgbG9u
ZyBhcyBhbnkgc21hbGwgc3RyaW5nIGlzIHN0aWxsIHJlZmVyZW5jZWQuCisgICAgICAgIAorICAg
ICAgICBTdW5TcGlkZXIgcmVwb3J0cyBubyBjaGFuZ2UuCisKKyAgICAgICAgKiBydW50aW1lL0Nv
bGxlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtSb290cyk6IE1hcmsgdGhlIHNt
YWxsIHN0cmluZ3MgY2FjaGUgbGFzdCwgc28gaXQgY2FuCisgICAgICAgIGNoZWNrIGlmIGFueXRo
aW5nIGVsc2UgaGFzIGtlcHQgYW55IHN0cmluZ3MgYWxpdmUuCisKKyAgICAgICAgKiBydW50aW1l
L1NtYWxsU3RyaW5ncy5jcHA6CisgICAgICAgIChKU0M6OmlzTWFya2VkKToKKyAgICAgICAgKEpT
Qzo6U21hbGxTdHJpbmdzOjptYXJrQ2hpbGRyZW4pOiBPbmx5IGtlZXAgb3VyIHN0cmluZ3MgYWxp
dmUgaWYgc29tZQorICAgICAgICBvdGhlciByZWZlcmVuY2UgdG8gYXQgbGVhc3Qgb25lIG9mIHRo
ZW0gZXhpc3RzLCB0b28uCisKIDIwMTAtMDItMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAJKHJldmlzaW9uIDU0Njk1KQorKysgSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIy
LDEyICsxMTIyLDE1IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKICAgICAgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXI6Om1hcmtMaXN0cyhtYXJrU3RhY2ssICptX21hcmtMaXN0U2V0KTsKICAgICBp
ZiAobV9nbG9iYWxEYXRhLT5leGNlcHRpb24pCiAgICAgICAgIG1hcmtTdGFjay5hcHBlbmQobV9n
bG9iYWxEYXRhLT5leGNlcHRpb24pOwotICAgIG1fZ2xvYmFsRGF0YS0+c21hbGxTdHJpbmdzLm1h
cmtDaGlsZHJlbihtYXJrU3RhY2spOwogICAgIGlmIChtX2dsb2JhbERhdGEtPmZ1bmN0aW9uQ29k
ZUJsb2NrQmVpbmdSZXBhcnNlZCkKICAgICAgICAgbV9nbG9iYWxEYXRhLT5mdW5jdGlvbkNvZGVC
bG9ja0JlaW5nUmVwYXJzZWQtPm1hcmtBZ2dyZWdhdGUobWFya1N0YWNrKTsKICAgICBpZiAobV9n
bG9iYWxEYXRhLT5maXJzdFN0cmluZ2lmaWVyVG9NYXJrKQogICAgICAgICBKU09OT2JqZWN0Ojpt
YXJrU3RyaW5naWZpZXJzKG1hcmtTdGFjaywgbV9nbG9iYWxEYXRhLT5maXJzdFN0cmluZ2lmaWVy
VG9NYXJrKTsKIAorICAgIC8vIE1hcmsgdGhlIHNtYWxsIHN0cmluZ3MgY2FjaGUgbGFzdCwgc2lu
Y2UgaXQgd2lsbCBjbGVhciBpdHNlbGYgaWYgbm90aGluZworICAgIC8vIGVsc2UgaGFzIG1hcmtl
ZCBpdC4KKyAgICBtX2dsb2JhbERhdGEtPnNtYWxsU3RyaW5ncy5tYXJrQ2hpbGRyZW4obWFya1N0
YWNrKTsKKwogICAgIG1hcmtTdGFjay5kcmFpbigpOwogICAgIG1hcmtTdGFjay5jb21wYWN0KCk7
CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAJKHJldmlzaW9u
IDU0Njk1KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCwxMSBAQAogbmFtZXNwYWNlIEpTQyB7CiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgbnVtQ2hhcmFjdGVyc1RvU3RvcmUgPSAweDEwMDsKIAorc3RhdGljIGlubGlu
ZSBib29sIGlzTWFya2VkKEpTU3RyaW5nKiBzdHJpbmcpCit7CisgICAgcmV0dXJuIHN0cmluZyAm
JiBIZWFwOjppc0NlbGxNYXJrZWQoc3RyaW5nKTsKK30KKwogY2xhc3MgU21hbGxTdHJpbmdzU3Rv
cmFnZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgU21hbGxTdHJpbmdzU3Rv
cmFnZSgpOwpAQCAtNjYsNiArNzEsMTcgQEAgU21hbGxTdHJpbmdzOjp+U21hbGxTdHJpbmdzKCkK
IAogdm9pZCBTbWFsbFN0cmluZ3M6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykK
IHsKKyAgICBib29sIGlzQW55U3RyaW5nTWFya2VkID0gaXNNYXJrZWQobV9lbXB0eVN0cmluZyk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUNoYXJhY3RlcnNUb1N0b3JlICYmICFp
c0FueVN0cmluZ01hcmtlZDsgKytpKSB7CisgICAgICAgIGlmIChpc01hcmtlZChtX3NpbmdsZUNo
YXJhY3RlclN0cmluZ3NbaV0pKQorICAgICAgICAgICAgaXNBbnlTdHJpbmdNYXJrZWQgPSB0cnVl
OworICAgIH0KKyAgICAKKyAgICBpZiAoIWlzQW55U3RyaW5nTWFya2VkKSB7CisgICAgICAgIGNs
ZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAgaWYgKG1fZW1wdHlTdHJp
bmcpCiAgICAgICAgIG1hcmtTdGFjay5hcHBlbmQobV9lbXB0eVN0cmluZyk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bUNoYXJhY3RlcnNUb1N0b3JlOyArK2kpIHsK
</data>
<flag name="review"
          id="31329"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>