<?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>87599</bug_id>
          
          <creation_ts>2012-05-27 15:01:36 -0700</creation_ts>
          <short_desc>Weak pointer finalization should be lazy</short_desc>
          <delta_ts>2012-06-09 10:35:26 -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>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>
          <dependson>87691</dependson>
    
    <dependson>87823</dependson>
    
    <dependson>87828</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634788</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-27 15:01:36 -0700</bug_when>
    <thetext>Weak pointer finalization should be lazy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634794</commentid>
    <comment_count>1</comment_count>
      <attachid>144240</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-27 15:07:19 -0700</bug_when>
    <thetext>Created attachment 144240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634796</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-27 15:09:38 -0700</bug_when>
    <thetext>Benchmark results from gc-dom-latency.html:

TOT:
------
average pause: 182.59259259259258
max pause: 714
iterations / pause: 24008.283950617282
iterations / pause ms: 131.48553076402976
iterations / ms: 53.93773229045321

PATCH:
------
average pause: 73.04878048780488 [2.5X improvement]
max pause: 218 [3.3X improvement]
iterations / pause: 39871.19512195122 [1.7X improvement]
iterations / pause ms: 545.8160267111853 [4.2X improvement]
iterations / ms: 64.52923064777168 [1.2X improvement]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634882</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-27 21:56:06 -0700</bug_when>
    <thetext>Committed r118646: &lt;http://trac.webkit.org/changeset/118646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635528</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 20:09:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 87691</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635531</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-28 20:11:20 -0700</bug_when>
    <thetext>This causes crashes when running the V8 raytrace benchmark within the V8v6 harness:


Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000048
JSC::Structure::classInfo (this=0x0) at Structure.h:186
186	        const ClassInfo* classInfo() const { return m_classInfo; }
(gdb) bt
#0  JSC::Structure::classInfo (this=0x0) at Structure.h:186
#1  0x000000010007e2f8 in JSC::Structure::typeInfo (this=0x100fc3740) at Structure.h:121
#2  0x000000010039f636 in JSC::Structure::Structure (this=0x100fcf220, globalData=@0x101007c00, previous=0x100fc3740) at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/runtime/Structure.cpp:197
#3  0x000000010039f5d5 in JSC::Structure::Structure (this=0x100fcf220, globalData=@0x101007c00, previous=0x100fc3740) at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/runtime/Structure.cpp:215
#4  0x00000001003a2e17 in JSC::Structure::create (globalData=@0x101007c00, structure=0x100fc3740) at Structure.h:223
#5  0x00000001003a041b in JSC::Structure::addPropertyTransition (globalData=@0x101007c00, structure=0x100fc3740, propertyName={m_impl = 0x101818080, static NotAnIndex = 4294967295}, attributes=0, specificValue=0x0, offset=@0x7fff5fbfde90) at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/runtime/Structure.cpp:329
#6  0x0000000100080a74 in JSC::JSObject::putDirectInternal&lt;(JSC::JSObject::PutMode)1&gt; (this=0x102fb7d80, globalData=@0x101007c00, propertyName={m_impl = 0x101818080, static NotAnIndex = 4294967295}, value={u = {asInt64 = -281474976710556, ptr = 0xffff000000000064, asBits = {payload = 100, tag = -65536}}}, attributes=0, slot=@0x7fff5fbfe050, specificFunction=0x0) at JSObject.h:744
#7  0x000000010017faa9 in JSC::JSObject::putDirect (this=0x102fb7d80, globalData=@0x101007c00, propertyName={m_impl = 0x101818080, static NotAnIndex = 4294967295}, value={u = {asInt64 = -281474976710556, ptr = 0xffff000000000064, asBits = {payload = 100, tag = -65536}}}, slot=@0x7fff5fbfe050) at JSObject.h:775
#8  0x000000010024ae9c in cti_op_put_by_id_direct (args=0x7fff5fbfe0b0) at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/jit/JITStubs.cpp:1445
#9  0x00000001002557f0 in JSC::JITThunks::clearHostFunctionStubs () at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/jit/JITStubs.cpp:3491
#10 0x000000010021d5a9 in JSC::JITCode::execute (this=0x100fcb6d8, registerFile=0x1018081d8, callFrame=0x104000038, globalData=0x101007c00) at JITCode.h:127
#11 0x00000001002192ab in JSC::Interpreter::execute (this=0x1018081c0, program=0x100fcb6c0, callFrame=0x100fdfb00, scopeChain=0x100feffc0, thisObj=0x100fdfa80) at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/interpreter/Interpreter.cpp:1232
#12 0x000000010010b442 in JSC::evaluate (exec=0x100fdfb00, scopeChain=0x100feffc0, source=@0x7fff5fbff8c0, thisValue={u = {asInt64 = 4311612032, ptr = 0x100fdfa80, asBits = {payload = 16644736, tag = 1}}}, returnedException=0x7fff5fbff8e0) at /Volumes/Data/pizlo/quartary/OpenSource/Source/JavaScriptCore/runtime/Completion.cpp:73
#13 0x0000000100008480 in runWithScripts (globalObject=0x100fdfa80, scripts=@0x7fff5fbff9a8, dump=false) at jsc.cpp:528
#14 0x0000000100007f4b in jscmain (argc=2, argv=0x7fff5fbffa50) at jsc.cpp:678
#15 0x0000000100007e5e in main (argc=2, argv=0x7fff5fbffa50) at jsc.cpp:493</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636660</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-29 18:06:07 -0700</bug_when>
    <thetext>Back in: &lt;http://trac.webkit.org/changeset/118868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636944</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 00:07:26 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 87828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640105</commentid>
    <comment_count>8</comment_count>
      <attachid>145466</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-02 18:50:54 -0700</bug_when>
    <thetext>Created attachment 145466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640106</commentid>
    <comment_count>9</comment_count>
      <attachid>145466</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-02 18:53:36 -0700</bug_when>
    <thetext>Comment on attachment 145466
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        This time for sure!

We will see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640236</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-03 14:17:00 -0700</bug_when>
    <thetext>Committed r119364: &lt;http://trac.webkit.org/changeset/119364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641164</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-04 21:10:36 -0700</bug_when>
    <thetext>Rolled out again in &lt;http://trac.webkit.org/changeset/119453&gt; because it caused crashes when running v8-earley stand-alone in DRT in run-jsc-benchmarks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645134</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-08 16:59:07 -0700</bug_when>
    <thetext>Rolled back in Part1: &lt;http://trac.webkit.org/changeset/119878&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645358</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-09 10:35:13 -0700</bug_when>
    <thetext>Rolled back in Part2: &lt;http://trac.webkit.org/changeset/119909&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144240</attachid>
            <date>2012-05-27 15:07:19 -0700</date>
            <delta_ts>2012-06-02 18:50:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87599-20120527150719.patch</filename>
            <type>text/plain</type>
            <size>4222</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4NjMxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDEyLTA1LTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2VhayBwb2ludGVyIGZpbmFsaXphdGlvbiBzaG91bGQgYmUgbGF6eQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1OTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAg
ICAgIChKU0M6OkhlYXA6OmNvbGxlY3QpOiBEb24ndCBmb3JjZSBpbW1lZGlhdGUgZmluYWxpemF0
aW9uIC0tIGl0IHdpbGwKKyAgICAgICAgaGFwcGVuIGxhemlseS4KKworICAgICAgICAqIGhlYXAv
TWFya2VkQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6c3dlZXApOiBTd2Vl
cCBhIGJsb2NrJ3Mgd2VhayBzZXQgd2hlbiBzd2VlcGluZyB0aGUKKyAgICAgICAgYmxvY2suIFRo
ZSB3ZWFrIHNldCBtYXkgbm90IGhhdmUgYmVlbiBzd2VwdCB5ZXQsIGFuZCB0aGlzIGlzIG91ciBs
YXN0CisgICAgICAgIGNoYW5jZSB0byBydW4gd2VhayBmaW5hbGl6ZXJzIGJlZm9yZSB3ZSByZWN5
Y2xlIHRoZSBtZW1vcnkgdGhleSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBoZWFwL01hcmtlZEJs
b2NrLmg6CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAgIChKU0M6Ok1h
cmtlZEJsb2NrOjpzd2VlcFdlYWtTZXRzKToKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmg6
CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpzd2VlcFdlYWtTZXRzKTogTml4ZWQgc3dlZXBX
ZWFrU2V0cyBiZWNhdXNlIGl0J3MgdW51c2VkCisgICAgICAgIG5vdy4KKwogMjAxMi0wNS0yNiAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdCBzaG91
bGQgYmUgbGF6eS1maW5hbGl6YXRpb24tc2FmZSAoZXNwLiB0aGUgRE9NKSB2MgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDExODYxNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODcsNyArNjg3
LDYgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KFN3ZWVwVG9nZ2xlIHN3ZWVwVG9nZwogCiAgICAgewog
ICAgICAgICBHQ1BIQVNFKEZpbmFsaXplV2Vha0hhbmRsZXMpOwotICAgICAgICBtX29iamVjdFNw
YWNlLnN3ZWVwV2Vha1NldHMoKTsKICAgICAgICAgbV9nbG9iYWxEYXRhLT5zbWFsbFN0cmluZ3Mu
ZmluYWxpemVTbWFsbFN0cmluZ3MoKTsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAxMTg2MTYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNCw2ICsxMTQsOCBAQCBNYXJrZWRCbG9jazo6RnJlZUxpc3QgTWFya2VkQmxvY2s6OnN3ZWVw
CiB7CiAgICAgSEVBUF9MT0dfQkxPQ0tfU1RBVEVfVFJBTlNJVElPTih0aGlzKTsKIAorICAgIG1f
d2Vha1NldC5zd2VlcCgpOworCiAgICAgaWYgKHN3ZWVwTW9kZSA9PSBTd2VlcE9ubHkgJiYgIW1f
Y2VsbHNOZWVkRGVzdHJ1Y3Rpb24pCiAgICAgICAgIHJldHVybiBGcmVlTGlzdCgpOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDExODYx
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMyw3ICsxMzMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lk
IHZpc2l0V2Vha1NldChIZWFwUm9vdFZpc2l0b3ImKTsKICAgICAgICAgdm9pZCByZWFwV2Vha1Nl
dCgpOwotICAgICAgICB2b2lkIHN3ZWVwV2Vha1NldCgpOwogCiAgICAgICAgIC8vIFdoaWxlIGFs
bG9jYXRpbmcgZnJvbSBhIGZyZWUgbGlzdCwgTWFya2VkQmxvY2sgdGVtcG9yYXJpbHkgaGFzIGJv
Z3VzCiAgICAgICAgIC8vIGNlbGwgbGl2ZW5lc3MgZGF0YS4gVG8gcmVzdG9yZSBhY2N1cmF0ZSBj
ZWxsIGxpdmVuZXNzIGRhdGEsIGNhbGwgb25lCkBAIC0yODcsMTEgKzI4Niw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBtX3dlYWtTZXQucmVhcCgpOwogICAgIH0KIAotICAgIGlubGluZSB2
b2lkIE1hcmtlZEJsb2NrOjpzd2VlcFdlYWtTZXQoKQotICAgIHsKLSAgICAgICAgbV93ZWFrU2V0
LnN3ZWVwKCk7Ci0gICAgfQotCiAgICAgaW5saW5lIHZvaWQgTWFya2VkQmxvY2s6OmRpZENvbnN1
bWVGcmVlTGlzdCgpCiAgICAgewogICAgICAgICBIRUFQX0xPR19CTE9DS19TVEFURV9UUkFOU0lU
SU9OKHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNl
LmNwcAkocmV2aXNpb24gMTE4NjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFy
a2VkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NywxMCArNzcsNiBAQCBzdHJ1Y3QgUmVh
cFdlYWtTZXQgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1CiAgICAgdm9pZCBvcGVyYXRvcigpKE1hcmtl
ZEJsb2NrKiBibG9jaykgeyBibG9jay0+cmVhcFdlYWtTZXQoKTsgfQogfTsKIAotc3RydWN0IFN3
ZWVwV2Vha1NldCA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7Ci0gICAgdm9pZCBvcGVyYXRv
cigpKE1hcmtlZEJsb2NrKiBibG9jaykgeyBibG9jay0+c3dlZXBXZWFrU2V0KCk7IH0KLX07Ci0K
IE1hcmtlZFNwYWNlOjpNYXJrZWRTcGFjZShIZWFwKiBoZWFwKQogICAgIDogbV9oZWFwKGhlYXAp
CiB7CkBAIC0xNDIsMTEgKzEzOCw2IEBAIHZvaWQgTWFya2VkU3BhY2U6OnJlYXBXZWFrU2V0cygp
CiAgICAgZm9yRWFjaEJsb2NrPFJlYXBXZWFrU2V0PigpOwogfQogCi12b2lkIE1hcmtlZFNwYWNl
Ojpzd2VlcFdlYWtTZXRzKCkKLXsKLSAgICBmb3JFYWNoQmxvY2s8U3dlZXBXZWFrU2V0PigpOwot
fQotCiB2b2lkIE1hcmtlZFNwYWNlOjpjYW5vbmljYWxpemVDZWxsTGl2ZW5lc3NEYXRhKCkKIHsK
ICAgICBmb3IgKHNpemVfdCBjZWxsU2l6ZSA9IHByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8PSBwcmVj
aXNlQ3V0b2ZmOyBjZWxsU2l6ZSArPSBwcmVjaXNlU3RlcCkgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiAxMTg2MTUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3
ICs4NSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmlzaXRXZWFrU2V0cyhIZWFwUm9vdFZpc2l0
b3ImKTsKICAgICB2b2lkIHJlYXBXZWFrU2V0cygpOwotICAgIHZvaWQgc3dlZXBXZWFrU2V0cygp
OwogCiAgICAgTWFya2VkQmxvY2tTZXQmIGJsb2NrcygpIHsgcmV0dXJuIG1fYmxvY2tzOyB9CiAg
ICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145466</attachid>
            <date>2012-06-02 18:50:54 -0700</date>
            <delta_ts>2012-06-02 18:53:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87599-20120602185053.patch</filename>
            <type>text/plain</type>
            <size>7760</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5MzQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDEyLTA2LTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2VhayBwb2ludGVyIGZpbmFsaXphdGlvbiBzaG91bGQgYmUgbGF6eQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1OTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRpbWUgZm9yIHN1cmUhCisK
KyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpjb2xsZWN0KTog
RG9uJ3Qgc3dlZXAgZWFnZXJseSAtLSB3ZSdsbCBzd2VlcCBsYXppbHkgaW5zdGVhZC4KKworICAg
ICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6
c3dlZXApOiBTd2VlcCBvdXIgd2VhayBzZXQgYmVmb3JlIHdlIHN3ZWVwIG91ciBvdGhlcgorICAg
ICAgICBkZXN0cnVjdG9ycyAtLSB0aGlzIGlzIG91ciBsYXN0IGNoYW5jZSB0byBydW4gd2VhayBz
ZXQgZmluYWxpemVycyBiZWZvcmUKKyAgICAgICAgd2UgcmVjeWNsZSBvdXIgbWVtb3J5LgorCisg
ICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6
cmVzZXRBbGxvY2F0b3IpOgorICAgICAgICAqIGhlYXAvTWFya2VkU3BhY2UuY3BwOgorICAgICAg
ICAoSlNDOjpNYXJrZWRTcGFjZTo6cmVzZXRBbGxvY2F0b3JzKToKKyAgICAgICAgKiBoZWFwL01h
cmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpyZXNldEFsbG9jYXRvcnMp
OiBEb24ndCBmb3JjZSBhbGxvY2F0b3IgcmVzZXQgYW55bW9yZS4KKyAgICAgICAgSXQgd2lsbCBo
YXBwZW4gYXV0b21hdGljYWxseSB3aGVuIGEgd2VhayBzZXQgaXMgc3dlcHQuIEl0J3Mgc2ltcGxl
ciB0bworICAgICAgICBoYXZlIG9ubHkgb25lIGNhbm9uaWNhbCB3YXkgZm9yIHRoaXMgdG8gaGFw
cGVuLCBhbmQgaXQgd2Fzbid0IGJ1eWluZworICAgICAgICB1cyBhbnl0aGluZyB0byBkbyBpdCBl
YWdlcmx5LgorCisgICAgICAgICogaGVhcC9XZWFrQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpX
ZWFrQmxvY2s6OnN3ZWVwKTogRG9uJ3Qgc2hvcnQtY2lyY3VpdCBhIHN3ZWVwIHVubGVzcyB3ZSBr
bm93CisgICAgICAgIHRoZSBzd2VlcCB3b3VsZCBiZSBhIG5vLW9wLiBJZiBldmVuIG9uZSBmaW5h
bGl6ZXIgaXMgcGVuZGluZywgd2UgbmVlZCB0bworICAgICAgICBydW4gaXQsIHNpbmNlIHdlIHdv
bid0IGdldCBhbm90aGVyIGNoYW5jZS4KKworICAgICAgICAqIGhlYXAvV2Vha1NldC5jcHA6Cisg
ICAgICAgIChKU0M6OldlYWtTZXQ6OnN3ZWVwKTogVGhpcyBsb29wIGNhbiBiZSBzaW1wbGVyIG5v
dyB0aGF0CisgICAgICAgIFdlYWtCbG9jazo6c3dlZXAoKSBkb2VzIHdoYXQgd2UgbWVhbi4KKwor
ICAgICAgICBSZXNldCBvdXIgYWxsb2NhdG9yIGFmdGVyIGEgc3dlZXAgYmVjYXVzZSB0aGlzIGlz
IHRoZSBvcHRpbWFsIHRpbWUgdG8KKyAgICAgICAgc3RhcnQgdHJ5aW5nIHRvIHJlY3ljbGUgb2xk
IHdlYWsgcG9pbnRlcnMuCisKKyAgICAgICAgKEpTQzo6V2Vha1NldDo6dHJ5RmluZEFsbG9jYXRv
cik6IERvbid0IHN3ZWVwIHdoZW4gc2VhcmNoaW5nIGZvciBhbgorICAgICAgICBhbGxvY2F0b3Ig
YmVjYXVzZSB3ZSd2ZSBzd2VwdCBhbHJlYWR5LCBhbmQgZm9yY2luZyBhIG5ldyBzd2VlcCB3b3Vs
ZCBiZQorICAgICAgICB3YXN0ZWZ1bC4KKworICAgICAgICAqIGhlYXAvV2Vha1NldC5oOgorICAg
ICAgICAoSlNDOjpXZWFrU2V0OjpzaHJpbmspOiBCZSBzdXJlIHRvIHJlc2V0IG91ciBhbGxvY2F0
b3IgYWZ0ZXIgYSBzaHJpbmsKKyAgICAgICAgYmVjYXVzZSB0aGUgc2hyaW5rIG1heSBoYXZlIHJl
bW92ZWQgdGhlIGJsb2NrIHRoZSBhbGxvY2F0b3Igd2FzIGdvaW5nIHRvCisgICAgICAgIGFsbG9j
YXRlIG91dCBvZi4KKwogMjAxMi0wNi0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgogCiAgICAgICAgIERGRyBDU0Ugc2hvdWxkIGJlIGFibGUgdG8gZWxpbWluYXRlIHVubmVjZXNz
YXJ5IGZsdXNoZXMgb2YgYXJndW1lbnRzIGFuZCBjYXB0dXJlZCB2YXJpYWJsZXMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxMTkzNDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjg4LDggKzY4
OCw3IEBAIHZvaWQgSGVhcDo6Y29sbGVjdChTd2VlcFRvZ2dsZSBzd2VlcFRvZ2cKICAgICB9CiAK
ICAgICB7Ci0gICAgICAgIEdDUEhBU0UoRmluYWxpemVXZWFrSGFuZGxlcyk7Ci0gICAgICAgIG1f
b2JqZWN0U3BhY2Uuc3dlZXBXZWFrU2V0cygpOworICAgICAgICBHQ1BIQVNFKEZpbmFsaXplU21h
bGxTdHJpbmcpOwogICAgICAgICBtX2dsb2JhbERhdGEtPnNtYWxsU3RyaW5ncy5maW5hbGl6ZVNt
YWxsU3RyaW5ncygpOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZEJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRCbG9jay5jcHAJKHJldmlzaW9uIDExOTM0MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzEx
NCw4IEBAIE1hcmtlZEJsb2NrOjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6c3dlZXAKIHsKICAgICBI
RUFQX0xPR19CTE9DS19TVEFURV9UUkFOU0lUSU9OKHRoaXMpOwogCisgICAgbV93ZWFrU2V0LnN3
ZWVwKCk7CisKICAgICBpZiAoc3dlZXBNb2RlID09IFN3ZWVwT25seSAmJiAhbV9jZWxsc05lZWRE
ZXN0cnVjdGlvbikKICAgICAgICAgcmV0dXJuIEZyZWVMaXN0KCk7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkocmV2aXNpb24gMTE5MzQwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAt
MTI5LDcgKzEyOSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGcmVlTGlzdCBzd2VlcChT
d2VlcE1vZGUgPSBTd2VlcE9ubHkpOwogCiAgICAgICAgIHZvaWQgc2hyaW5rKCk7Ci0gICAgICAg
IHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsKIAogICAgICAgICB2b2lkIHZpc2l0V2Vha1NldChIZWFw
Um9vdFZpc2l0b3ImKTsKICAgICAgICAgdm9pZCByZWFwV2Vha1NldCgpOwpAQCAtMjc0LDExICsy
NzMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgbV93ZWFrU2V0LnNocmluaygpOwogICAg
IH0KIAotICAgIGlubGluZSB2b2lkIE1hcmtlZEJsb2NrOjpyZXNldEFsbG9jYXRvcigpCi0gICAg
ewotICAgICAgICBtX3dlYWtTZXQucmVzZXRBbGxvY2F0b3IoKTsKLSAgICB9Ci0KICAgICBpbmxp
bmUgdm9pZCBNYXJrZWRCbG9jazo6dmlzaXRXZWFrU2V0KEhlYXBSb290VmlzaXRvciYgaGVhcFJv
b3RWaXNpdG9yKQogICAgIHsKICAgICAgICAgbV93ZWFrU2V0LnZpc2l0KGhlYXBSb290VmlzaXRv
cik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCShy
ZXZpc2lvbiAxMTkzNDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiwxMCArMTEyLDYgQEAgdm9pZCBNYXJrZWRTcGFj
ZTo6bGFzdENoYW5jZVRvRmluYWxpemUoKQogICAgIGZvckVhY2hCbG9jazxMYXN0Q2hhbmNlVG9G
aW5hbGl6ZT4oKTsKIH0KIAotc3RydWN0IFJlc2V0QWxsb2NhdG9yIDogTWFya2VkQmxvY2s6OlZv
aWRGdW5jdG9yIHsKLSAgICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKSB7IGJs
b2NrLT5yZXNldEFsbG9jYXRvcigpOyB9Ci19OwotCiB2b2lkIE1hcmtlZFNwYWNlOjpyZXNldEFs
bG9jYXRvcnMoKQogewogICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0gcHJlY2lzZVN0ZXA7IGNl
bGxTaXplIDw9IHByZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9IHByZWNpc2VTdGVwKSB7CkBAIC0x
MjcsOCArMTIzLDYgQEAgdm9pZCBNYXJrZWRTcGFjZTo6cmVzZXRBbGxvY2F0b3JzKCkKICAgICAg
ICAgYWxsb2NhdG9yRm9yKGNlbGxTaXplKS5yZXNldCgpOwogICAgICAgICBkZXN0cnVjdG9yQWxs
b2NhdG9yRm9yKGNlbGxTaXplKS5yZXNldCgpOwogICAgIH0KLQotICAgIGZvckVhY2hCbG9jazxS
ZXNldEFsbG9jYXRvcj4oKTsKIH0KIAogdm9pZCBNYXJrZWRTcGFjZTo6dmlzaXRXZWFrU2V0cyhI
ZWFwUm9vdFZpc2l0b3ImIGhlYXBSb290VmlzaXRvcikKQEAgLTE0MiwxMSArMTM2LDYgQEAgdm9p
ZCBNYXJrZWRTcGFjZTo6cmVhcFdlYWtTZXRzKCkKICAgICBmb3JFYWNoQmxvY2s8UmVhcFdlYWtT
ZXQ+KCk7CiB9CiAKLXZvaWQgTWFya2VkU3BhY2U6OnN3ZWVwV2Vha1NldHMoKQotewotICAgIGZv
ckVhY2hCbG9jazxTd2VlcFdlYWtTZXQ+KCk7Ci19Ci0KIHZvaWQgTWFya2VkU3BhY2U6OmNhbm9u
aWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEoKQogewogICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0g
cHJlY2lzZVN0ZXA7IGNlbGxTaXplIDw9IHByZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9IHByZWNp
c2VTdGVwKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgJ
KHJldmlzaW9uIDExOTM0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNw
YWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDYgQEAgcHVibGljOgogCiAgICAgdm9p
ZCB2aXNpdFdlYWtTZXRzKEhlYXBSb290VmlzaXRvciYpOwogICAgIHZvaWQgcmVhcFdlYWtTZXRz
KCk7Ci0gICAgdm9pZCBzd2VlcFdlYWtTZXRzKCk7CiAKICAgICBNYXJrZWRCbG9ja1NldCYgYmxv
Y2tzKCkgeyByZXR1cm4gbV9ibG9ja3M7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAkocmV2aXNpb24gMTE5MzQwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjks
OCBAQCB2b2lkIFdlYWtCbG9jazo6bGFzdENoYW5jZVRvRmluYWxpemUoKQogCiB2b2lkIFdlYWtC
bG9jazo6c3dlZXAoKQogewotICAgIGlmICghbV9zd2VlcFJlc3VsdC5pc051bGwoKSkKKyAgICAv
LyBJZiBhIGJsb2NrIGlzIGNvbXBsZXRlbHkgZW1wdHksIGEgc3dlZXAgd29uJ3QgaGF2ZSBhbnkg
ZWZmZWN0LgorICAgIGlmIChpc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFN3ZWVw
UmVzdWx0IHN3ZWVwUmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a1NldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1Nl
dC5jcHAJKHJldmlzaW9uIDExOTM0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxNyArNDIsMTAgQEAgV2Vha1NldDo6fldl
YWtTZXQoKQogCiB2b2lkIFdlYWtTZXQ6OnN3ZWVwKCkKIHsKLSAgICBXZWFrQmxvY2sqIG5leHQ7
Ci0gICAgZm9yIChXZWFrQmxvY2sqIGJsb2NrID0gbV9ibG9ja3MuaGVhZCgpOyBibG9jazsgYmxv
Y2sgPSBuZXh0KSB7Ci0gICAgICAgIG5leHQgPSBibG9jay0+bmV4dCgpOwotCi0gICAgICAgIC8v
IElmIGEgYmxvY2sgaXMgY29tcGxldGVseSBlbXB0eSwgYSBuZXcgc3dlZXAgd29uJ3QgaGF2ZSBh
bnkgZWZmZWN0LgotICAgICAgICBpZiAoYmxvY2stPmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotCi0gICAgICAgIGJsb2NrLT50YWtlU3dlZXBSZXN1bHQoKTsgLy8gRm9yY2UgYSBu
ZXcgc3dlZXAgYnkgZGlzY2FyZGluZyB0aGUgbGFzdCBzd2VlcC4KKyAgICBmb3IgKFdlYWtCbG9j
ayogYmxvY2sgPSBtX2Jsb2Nrcy5oZWFkKCk7IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkp
CiAgICAgICAgIGJsb2NrLT5zd2VlcCgpOwotICAgIH0KKworICAgIHJlc2V0QWxsb2NhdG9yKCk7
CiB9CiAKIFdlYWtCbG9jazo6RnJlZUNlbGwqIFdlYWtTZXQ6OmZpbmRBbGxvY2F0b3IoKQpAQCAt
NjksNyArNjIsNiBAQCBXZWFrQmxvY2s6OkZyZWVDZWxsKiBXZWFrU2V0Ojp0cnlGaW5kQWxsCiAg
ICAgICAgIFdlYWtCbG9jayogYmxvY2sgPSBtX25leHRBbGxvY2F0b3I7CiAgICAgICAgIG1fbmV4
dEFsbG9jYXRvciA9IG1fbmV4dEFsbG9jYXRvci0+bmV4dCgpOwogCi0gICAgICAgIGJsb2NrLT5z
d2VlcCgpOwogICAgICAgICBXZWFrQmxvY2s6OlN3ZWVwUmVzdWx0IHN3ZWVwUmVzdWx0ID0gYmxv
Y2stPnRha2VTd2VlcFJlc3VsdCgpOwogICAgICAgICBpZiAoc3dlZXBSZXN1bHQuZnJlZUxpc3Qp
CiAgICAgICAgICAgICByZXR1cm4gc3dlZXBSZXN1bHQuZnJlZUxpc3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vha1NldC5oCShyZXZpc2lvbiAxMTkzNDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgs
OCBAQCBpbmxpbmUgdm9pZCBXZWFrU2V0OjpzaHJpbmsoKQogICAgICAgICBpZiAoYmxvY2stPmlz
RW1wdHkoKSkKICAgICAgICAgICAgIHJlbW92ZUFsbG9jYXRvcihibG9jayk7CiAgICAgfQorCisg
ICAgcmVzZXRBbGxvY2F0b3IoKTsKIH0KIAogaW5saW5lIHZvaWQgV2Vha1NldDo6cmVzZXRBbGxv
Y2F0b3IoKQo=
</data>
<flag name="review"
          id="152583"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>