<?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>98084</bug_id>
          
          <creation_ts>2012-10-01 15:44:24 -0700</creation_ts>
          <short_desc>Block freeing thread should sleep indefinitely when there&apos;s no work to do</short_desc>
          <delta_ts>2012-10-17 10:30: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>JavaScriptCore</component>
          <version>528+ (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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>732071</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-01 15:44:24 -0700</bug_when>
    <thetext>Current the block freeing thread wakes up once a second to check if there are any blocks for it to release back to the OS. This is wasteful. We should change it to sleep when it realizes there are no more blocks to free. Any thread that returns a block to the BlockAllocator should then notify the block freeing thread that there is more work to do now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732081</commentid>
    <comment_count>1</comment_count>
      <attachid>166562</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-01 15:59:24 -0700</bug_when>
    <thetext>Created attachment 166562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732110</commentid>
    <comment_count>2</comment_count>
      <attachid>166562</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-10-01 16:24:59 -0700</bug_when>
    <thetext>Comment on attachment 166562
Patch

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

This fix looks correct, but I think it can get better.

&gt; Source/JavaScriptCore/heap/BlockAllocator.h:111
&gt; +        m_numberOfFreeBlocks++;

Can we just use m_numberOfFreeBlocks != 0, instead of a separate m_blocksNeedFreeing boolean, to tell if we need to free anything?

&gt; Source/JavaScriptCore/heap/BlockAllocator.h:118
&gt; +    MutexLocker mutexLocker(m_freeBlockConditionLock);
&gt; +    if (!m_blocksNeedFreeing) {
&gt; +        m_blocksNeedFreeing = true;
&gt; +        m_freeBlockCondition.signal();
&gt; +    }

Rather than doing this unconditionally, I&apos;d prefer to see this done only if m_numberOfFreeBlocks was 0 when we acquired the lock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732190</commentid>
    <comment_count>3</comment_count>
      <attachid>166587</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-01 18:29:46 -0700</bug_when>
    <thetext>Created attachment 166587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732242</commentid>
    <comment_count>4</comment_count>
      <attachid>166587</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-10-01 21:11:55 -0700</bug_when>
    <thetext>Comment on attachment 166587
Patch

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

r=me

&gt; Source/JavaScriptCore/heap/BlockAllocator.h:115
&gt; +    MutexLocker mutexLocker(m_freeBlockConditionLock);
&gt; +    if (!numberOfFreeBlocks)

&quot;mutexLocker&quot; should be scoped inside &quot;if (!numberOfFreeBlocks)&quot;, so we only acquire the mutex on the transition from zero to non-zero. Please make this change before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733073</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-02 14:24:04 -0700</bug_when>
    <thetext>Committed r130212: &lt;http://trac.webkit.org/changeset/130212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733076</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-02 14:24:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/12350667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735661</commentid>
    <comment_count>7</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-10-05 08:40:21 -0700</bug_when>
    <thetext>*** Bug 90622 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743904</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-16 23:40:46 -0700</bug_when>
    <thetext>Reopening because this wasn&apos;t completely fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744319</commentid>
    <comment_count>9</comment_count>
      <attachid>169199</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-17 09:45:24 -0700</bug_when>
    <thetext>Created attachment 169199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744360</commentid>
    <comment_count>10</comment_count>
      <attachid>169199</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-10-17 10:18:12 -0700</bug_when>
    <thetext>Comment on attachment 169199
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744372</commentid>
    <comment_count>11</comment_count>
      <attachid>169199</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 10:30:41 -0700</bug_when>
    <thetext>Comment on attachment 169199
Patch

Clearing flags on attachment: 169199

Committed r131619: &lt;http://trac.webkit.org/changeset/131619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744373</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 10:30:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166562</attachid>
            <date>2012-10-01 15:59:24 -0700</date>
            <delta_ts>2012-10-01 18:29:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98084-20121001155838.patch</filename>
            <type>text/plain</type>
            <size>3633</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwMDkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTEwLTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQmxvY2sgZnJlZWluZyB0aHJlYWQgc2hvdWxkIHNsZWVwIGluZGVmaW5pdGVseSB3
aGVuIHRoZXJlJ3Mgbm8gd29yayB0byBkbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHkgdGhlIGJsb2NrIGZyZWVpbmcgdGhyZWFkIHdha2Vz
IHVwIG9uY2UgYSBzZWNvbmQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBibG9ja3MgCisgICAg
ICAgIGZvciBpdCB0byByZWxlYXNlIGJhY2sgdG8gdGhlIE9TLiBUaGlzIGlzIHdhc3RlZnVsLiBX
ZSBzaG91bGQgY2hhbmdlIGl0IHRvIHNsZWVwIHdoZW4gaXQgCisgICAgICAgIHJlYWxpemVzIHRo
ZXJlIGFyZSBubyBtb3JlIGJsb2NrcyB0byBmcmVlLiBBbnkgdGhyZWFkIHRoYXQgcmV0dXJucyBh
IGJsb2NrIHRvIHRoZSBCbG9ja0FsbG9jYXRvciAKKyAgICAgICAgc2hvdWxkIHRoZW4gbm90aWZ5
IHRoZSBibG9jayBmcmVlaW5nIHRocmVhZCB0aGF0IHRoZXJlIGlzIG1vcmUgd29yayB0byBkbyBu
b3cuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
QmxvY2tBbGxvY2F0b3I6OkJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxv
Y2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4pOgorICAgICAgICAqIGhlYXAvQmxvY2tBbGxv
Y2F0b3IuaDoKKyAgICAgICAgKEJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6QmxvY2tB
bGxvY2F0b3I6OmRlYWxsb2NhdGUpOgorCiAyMDEyLTEwLTAxICBKb25hdGhhbiBMaXUgIDxuZXQx
NDdAZ21haWwuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgc3lzL21tYW4uaCBpbmNsdWRl
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3Bw
CShyZXZpc2lvbiAxMzAwNTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0Fs
bG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAgQmxvY2tBbGxvY2F0
b3I6OkJsb2NrQWxsb2NhdG9yKCkKICAgICA6IG1fbnVtYmVyT2ZGcmVlQmxvY2tzKDApCiAgICAg
LCBtX2lzQ3VycmVudGx5QWxsb2NhdGluZyhmYWxzZSkKICAgICAsIG1fYmxvY2tGcmVlaW5nVGhy
ZWFkU2hvdWxkUXVpdChmYWxzZSkKKyAgICAsIG1fYmxvY2tzTmVlZEZyZWVpbmcoZmFsc2UpCiAg
ICAgLCBtX2Jsb2NrRnJlZWluZ1RocmVhZChjcmVhdGVUaHJlYWQoYmxvY2tGcmVlaW5nVGhyZWFk
U3RhcnRGdW5jLCB0aGlzLCAiSmF2YVNjcmlwdENvcmU6OkJsb2NrRnJlZSIpKQogewogICAgIEFT
U0VSVChtX2Jsb2NrRnJlZWluZ1RocmVhZCk7CkBAIC0xMzgsNiArMTM5LDE5IEBAIHZvaWQgQmxv
Y2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgRGVhZEJsb2NrOjpkZXN0cm95KGJsb2NrKS5kZWFsbG9jYXRlKCk7CiAgICAgICAgIH0KKwor
ICAgICAgICAvLyBTbGVlcCB1bnRpbCB0aGVyZSBpcyBhY3R1YWxseSB3b3JrIHRvIGRvIHJhdGhl
ciB0aGFuIHdha2luZyB1cCBldmVyeSBzZWNvbmQgdG8gY2hlY2suCisgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2ZyZWVCbG9ja0NvbmRpdGlvbkxvY2spOworICAgICAgICBtX2ZyZWVCbG9j
a0xvY2suTG9jaygpOworICAgICAgICBpZiAoIW1fbnVtYmVyT2ZGcmVlQmxvY2tzKQorICAgICAg
ICAgICAgbV9ibG9ja3NOZWVkRnJlZWluZyA9IGZhbHNlOworCisgICAgICAgIHdoaWxlICghbV9i
bG9ja3NOZWVkRnJlZWluZyAmJiAhbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0KSB7Cisg
ICAgICAgICAgICBtX2ZyZWVCbG9ja0xvY2suVW5sb2NrKCk7CisgICAgICAgICAgICBtX2ZyZWVC
bG9ja0NvbmRpdGlvbi53YWl0KG1fZnJlZUJsb2NrQ29uZGl0aW9uTG9jayk7CisgICAgICAgICAg
ICBtX2ZyZWVCbG9ja0xvY2suTG9jaygpOworICAgICAgICB9CisgICAgICAgIG1fZnJlZUJsb2Nr
TG9jay5VbmxvY2soKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Jsb2NrQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQmxvY2tBbGxvY2F0b3IuaAkocmV2aXNpb24gMTMwMDU1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiAr
NzcsNyBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX251bWJlck9mRnJlZUJsb2NrczsKICAgICBi
b29sIG1faXNDdXJyZW50bHlBbGxvY2F0aW5nOwogICAgIGJvb2wgbV9ibG9ja0ZyZWVpbmdUaHJl
YWRTaG91bGRRdWl0OworICAgIGJvb2wgbV9ibG9ja3NOZWVkRnJlZWluZzsKICAgICBTcGluTG9j
ayBtX2ZyZWVCbG9ja0xvY2s7CiAgICAgTXV0ZXggbV9mcmVlQmxvY2tDb25kaXRpb25Mb2NrOwog
ICAgIFRocmVhZENvbmRpdGlvbiBtX2ZyZWVCbG9ja0NvbmRpdGlvbjsKQEAgLTEwNCw5ICsxMDUs
MTcgQEAgaW5saW5lIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBCbG9ja0FsbG9jYQogCiBpbmxpbmUg
dm9pZCBCbG9ja0FsbG9jYXRvcjo6ZGVhbGxvY2F0ZShQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxs
b2NhdGlvbikKIHsKLSAgICBTcGluTG9ja0hvbGRlciBsb2NrZXIoJm1fZnJlZUJsb2NrTG9jayk7
Ci0gICAgbV9mcmVlQmxvY2tzLnB1c2goRGVhZEJsb2NrOjpjcmVhdGUoYWxsb2NhdGlvbikpOwot
ICAgIG1fbnVtYmVyT2ZGcmVlQmxvY2tzKys7CisgICAgeworICAgICAgICBTcGluTG9ja0hvbGRl
ciBsb2NrZXIoJm1fZnJlZUJsb2NrTG9jayk7CisgICAgICAgIG1fZnJlZUJsb2Nrcy5wdXNoKERl
YWRCbG9jazo6Y3JlYXRlKGFsbG9jYXRpb24pKTsKKyAgICAgICAgbV9udW1iZXJPZkZyZWVCbG9j
a3MrKzsKKyAgICB9CisKKyAgICBNdXRleExvY2tlciBtdXRleExvY2tlcihtX2ZyZWVCbG9ja0Nv
bmRpdGlvbkxvY2spOworICAgIGlmICghbV9ibG9ja3NOZWVkRnJlZWluZykgeworICAgICAgICBt
X2Jsb2Nrc05lZWRGcmVlaW5nID0gdHJ1ZTsKKyAgICAgICAgbV9mcmVlQmxvY2tDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166587</attachid>
            <date>2012-10-01 18:29:46 -0700</date>
            <delta_ts>2012-10-17 09:45:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98084-20121001182900.patch</filename>
            <type>text/plain</type>
            <size>2937</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwMDkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTEwLTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQmxvY2sgZnJlZWluZyB0aHJlYWQgc2hvdWxkIHNsZWVwIGluZGVmaW5pdGVseSB3
aGVuIHRoZXJlJ3Mgbm8gd29yayB0byBkbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHkgdGhlIGJsb2NrIGZyZWVpbmcgdGhyZWFkIHdha2Vz
IHVwIG9uY2UgYSBzZWNvbmQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBibG9ja3MgCisgICAg
ICAgIGZvciBpdCB0byByZWxlYXNlIGJhY2sgdG8gdGhlIE9TLiBUaGlzIGlzIHdhc3RlZnVsLiBX
ZSBzaG91bGQgY2hhbmdlIGl0IHRvIHNsZWVwIHdoZW4gaXQgCisgICAgICAgIHJlYWxpemVzIHRo
ZXJlIGFyZSBubyBtb3JlIGJsb2NrcyB0byBmcmVlLiBBbnkgdGhyZWFkIHRoYXQgcmV0dXJucyBh
IGJsb2NrIHRvIHRoZSBCbG9ja0FsbG9jYXRvciAKKyAgICAgICAgc2hvdWxkIHRoZW4gbm90aWZ5
IHRoZSBibG9jayBmcmVlaW5nIHRocmVhZCB0aGF0IHRoZXJlIGlzIG1vcmUgd29yayB0byBkbyBu
b3cuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
QmxvY2tBbGxvY2F0b3I6OkJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxv
Y2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4pOgorICAgICAgICAqIGhlYXAvQmxvY2tBbGxv
Y2F0b3IuaDoKKyAgICAgICAgKEJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6QmxvY2tB
bGxvY2F0b3I6OmRlYWxsb2NhdGUpOgorCiAyMDEyLTEwLTAxICBKb25hdGhhbiBMaXUgIDxuZXQx
NDdAZ21haWwuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgc3lzL21tYW4uaCBpbmNsdWRl
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3Bw
CShyZXZpc2lvbiAxMzAwNTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0Fs
bG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsMTYgQEAgdm9pZCBCbG9j
a0FsbG9jYXRvcjo6YmxvY2tGcmVlaW5nVGhyZWFkTQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBEZWFkQmxvY2s6OmRlc3Ryb3koYmxvY2spLmRlYWxsb2NhdGUoKTsKICAgICAgICAgfQorCisg
ICAgICAgIC8vIFNsZWVwIHVudGlsIHRoZXJlIGlzIGFjdHVhbGx5IHdvcmsgdG8gZG8gcmF0aGVy
IHRoYW4gd2FraW5nIHVwIGV2ZXJ5IHNlY29uZCB0byBjaGVjay4KKyAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZnJlZUJsb2NrQ29uZGl0aW9uTG9jayk7CisgICAgICAgIG1fZnJlZUJsb2Nr
TG9jay5Mb2NrKCk7CisgICAgICAgIHdoaWxlICghbV9udW1iZXJPZkZyZWVCbG9ja3MgJiYgIW1f
YmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkgeworICAgICAgICAgICAgbV9mcmVlQmxvY2tM
b2NrLlVubG9jaygpOworICAgICAgICAgICAgbV9mcmVlQmxvY2tDb25kaXRpb24ud2FpdChtX2Zy
ZWVCbG9ja0NvbmRpdGlvbkxvY2spOworICAgICAgICAgICAgbV9mcmVlQmxvY2tMb2NrLkxvY2so
KTsKKyAgICAgICAgfQorICAgICAgICBtX2ZyZWVCbG9ja0xvY2suVW5sb2NrKCk7CiAgICAgfQog
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgJ
KHJldmlzaW9uIDEzMDA1NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxs
b2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw5ICsxMDQsMTYgQEAgaW5saW5lIFBhZ2VB
bGxvY2F0aW9uQWxpZ25lZCBCbG9ja0FsbG9jYQogCiBpbmxpbmUgdm9pZCBCbG9ja0FsbG9jYXRv
cjo6ZGVhbGxvY2F0ZShQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbikKIHsKLSAgICBT
cGluTG9ja0hvbGRlciBsb2NrZXIoJm1fZnJlZUJsb2NrTG9jayk7Ci0gICAgbV9mcmVlQmxvY2tz
LnB1c2goRGVhZEJsb2NrOjpjcmVhdGUoYWxsb2NhdGlvbikpOwotICAgIG1fbnVtYmVyT2ZGcmVl
QmxvY2tzKys7CisgICAgc2l6ZV90IG51bWJlck9mRnJlZUJsb2NrczsKKyAgICB7CisgICAgICAg
IFNwaW5Mb2NrSG9sZGVyIGxvY2tlcigmbV9mcmVlQmxvY2tMb2NrKTsKKyAgICAgICAgbV9mcmVl
QmxvY2tzLnB1c2goRGVhZEJsb2NrOjpjcmVhdGUoYWxsb2NhdGlvbikpOworICAgICAgICBudW1i
ZXJPZkZyZWVCbG9ja3MgPSBtX251bWJlck9mRnJlZUJsb2NrcysrOworICAgIH0KKworICAgIE11
dGV4TG9ja2VyIG11dGV4TG9ja2VyKG1fZnJlZUJsb2NrQ29uZGl0aW9uTG9jayk7CisgICAgaWYg
KCFudW1iZXJPZkZyZWVCbG9ja3MpCisgICAgICAgIG1fZnJlZUJsb2NrQ29uZGl0aW9uLnNpZ25h
bCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169199</attachid>
            <date>2012-10-17 09:45:24 -0700</date>
            <delta_ts>2012-10-17 10:30:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98084-20121017094411.patch</filename>
            <type>text/plain</type>
            <size>3250</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMxNTUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTEwLTE2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQmxvY2sgZnJlZWluZyB0aHJlYWQgc2hvdWxkIHNsZWVwIGluZGVmaW5pdGVseSB3
aGVuIHRoZXJlJ3Mgbm8gd29yayB0byBkbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICByMTMwMjEyIGRpZG4ndCBmdWxseSBmaXggdGhlIHByb2JsZW0uCisK
KyAgICAgICAgKiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6QmxvY2tB
bGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4pOiBXZSB3b3VsZCBqdXN0IGNvbnRpbnVl
IHRvIHRoZSBuZXh0IGl0ZXJhdGlvbiBpZiAKKyAgICAgICAgd2UgZm91bmQgdGhhdCB3ZSBoYWQg
emVybyBibG9ja3MgdG8gY29weS4gV2Ugc2hvdWxkIG1vdmUgdGhlIGluZGVmaW5pdGUgd2FpdCB1
cCB0byB3aGVyZSB0aGF0IAorICAgICAgICBjaGVjayBpcyBkb25lIHNvIHRoYXQgd2UgcHJvcGVy
bHkgZGV0ZWN0IHRoZSAibm8gbW9yZSBibG9ja3MgdG8gY29weSwgd2FpdCBmb3IgbW9yZSIgY29u
ZGl0aW9uLgorCiAyMDEyLTEwLTE2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMTUxNiBhbmQgcjEzMTU1
MC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5j
cHAJKHJldmlzaW9uIDEzMTU0OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2Nr
QWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIHZvaWQgQmxv
Y2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZFMKIAogdm9pZCBCbG9ja0FsbG9jYXRvcjo6
YmxvY2tGcmVlaW5nVGhyZWFkTWFpbigpCiB7CisgICAgc2l6ZV90IGN1cnJlbnROdW1iZXJPZkVt
cHR5UmVnaW9uczsKICAgICB3aGlsZSAoIW1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkg
ewogICAgICAgICAvLyBHZW5lcmFsbHkgd2FpdCBmb3Igb25lIHNlY29uZCBiZWZvcmUgc2NhdmVu
Z2luZyBmcmVlIGJsb2Nrcy4gVGhpcwogICAgICAgICAvLyBtYXkgcmV0dXJuIGVhcmx5LCBwYXJ0
aWN1bGFybHkgd2hlbiB3ZSdyZSBiZWluZyBhc2tlZCB0byBxdWl0LgpAQCAtMTE0LDEyICsxMTUs
MTcgQEAgdm9pZCBCbG9ja0FsbG9jYXRvcjo6YmxvY2tGcmVlaW5nVGhyZWFkTQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBOb3cgcHJvY2VzcyB0aGUgbGlz
dCBvZiBmcmVlIGJsb2Nrcy4gS2VlcCBmcmVlaW5nIHVudGlsIGhhbGYgb2YgdGhlCi0gICAgICAg
IC8vIGJsb2NrcyB0aGF0IGFyZSBjdXJyZW50bHkgb24gdGhlIGxpc3QgYXJlIGdvbmUuIEFzc3Vt
ZSB0aGF0IGEgc2l6ZV90Ci0gICAgICAgIC8vIGZpZWxkIGNhbiBiZSBhY2Nlc3NlZCBhdG9taWNh
bGx5LgotICAgICAgICBzaXplX3QgY3VycmVudE51bWJlck9mRW1wdHlSZWdpb25zID0gbV9udW1i
ZXJPZkVtcHR5UmVnaW9uczsKLSAgICAgICAgaWYgKCFjdXJyZW50TnVtYmVyT2ZFbXB0eVJlZ2lv
bnMpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgLy8gU2xlZXAgdW50aWwgdGhlcmUg
aXMgYWN0dWFsbHkgd29yayB0byBkbyByYXRoZXIgdGhhbiB3YWtpbmcgdXAgZXZlcnkgc2Vjb25k
IHRvIGNoZWNrLgorICAgICAgICB7CisgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9l
bXB0eVJlZ2lvbkNvbmRpdGlvbkxvY2spOworICAgICAgICAgICAgU3BpbkxvY2tIb2xkZXIgcmVn
aW9uTG9ja2VyKCZtX3JlZ2lvbkxvY2spOworICAgICAgICAgICAgd2hpbGUgKCFtX251bWJlck9m
RW1wdHlSZWdpb25zICYmICFtX2Jsb2NrRnJlZWluZ1RocmVhZFNob3VsZFF1aXQpIHsKKyAgICAg
ICAgICAgICAgICBtX3JlZ2lvbkxvY2suVW5sb2NrKCk7CisgICAgICAgICAgICAgICAgbV9lbXB0
eVJlZ2lvbkNvbmRpdGlvbi53YWl0KG1fZW1wdHlSZWdpb25Db25kaXRpb25Mb2NrKTsKKyAgICAg
ICAgICAgICAgICBtX3JlZ2lvbkxvY2suTG9jaygpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY3VycmVudE51bWJlck9mRW1wdHlSZWdpb25zID0gbV9udW1iZXJPZkVtcHR5UmVnaW9uczsK
KyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc2l6ZV90IGRlc2lyZWROdW1iZXJPZkVtcHR5
UmVnaW9ucyA9IGN1cnJlbnROdW1iZXJPZkVtcHR5UmVnaW9ucyAvIDI7CiAgICAgICAgIApAQCAt
MTQxLDE2ICsxNDcsNiBAQCB2b2lkIEJsb2NrQWxsb2NhdG9yOjpibG9ja0ZyZWVpbmdUaHJlYWRN
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGRlbGV0ZSByZWdpb247CiAgICAgICAgIH0KLQot
ICAgICAgICAvLyBTbGVlcCB1bnRpbCB0aGVyZSBpcyBhY3R1YWxseSB3b3JrIHRvIGRvIHJhdGhl
ciB0aGFuIHdha2luZyB1cCBldmVyeSBzZWNvbmQgdG8gY2hlY2suCi0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2VtcHR5UmVnaW9uQ29uZGl0aW9uTG9jayk7Ci0gICAgICAgIG1fcmVnaW9u
TG9jay5Mb2NrKCk7Ci0gICAgICAgIHdoaWxlICghbV9udW1iZXJPZkVtcHR5UmVnaW9ucyAmJiAh
bV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0KSB7Ci0gICAgICAgICAgICBtX3JlZ2lvbkxv
Y2suVW5sb2NrKCk7Ci0gICAgICAgICAgICBtX2VtcHR5UmVnaW9uQ29uZGl0aW9uLndhaXQobV9l
bXB0eVJlZ2lvbkNvbmRpdGlvbkxvY2spOwotICAgICAgICAgICAgbV9yZWdpb25Mb2NrLkxvY2so
KTsKLSAgICAgICAgfQotICAgICAgICBtX3JlZ2lvbkxvY2suVW5sb2NrKCk7CiAgICAgfQogfQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>