<?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>81579</bug_id>
          
          <creation_ts>2012-03-19 16:01:38 -0700</creation_ts>
          <short_desc>Refactor ContainerNode::replaceChild to match other mutation methods and share code</short_desc>
          <delta_ts>2019-02-06 09:02:37 -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>DOM</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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81683</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>582376</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-19 16:01:38 -0700</bug_when>
    <thetext>Refactor ContainerNode::replaceChild to match other mutation methods and share code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582385</commentid>
    <comment_count>1</comment_count>
      <attachid>132697</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-19 16:07:59 -0700</bug_when>
    <thetext>Created attachment 132697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582482</commentid>
    <comment_count>2</comment_count>
      <attachid>132697</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-19 17:03:34 -0700</bug_when>
    <thetext>Comment on attachment 132697
Patch

Looks awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582621</commentid>
    <comment_count>3</comment_count>
      <attachid>132697</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 19:19:31 -0700</bug_when>
    <thetext>Comment on attachment 132697
Patch

Clearing flags on attachment: 132697

Committed r111310: &lt;http://trac.webkit.org/changeset/111310&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582623</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 19:19:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582879</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-20 02:30:55 -0700</bug_when>
    <thetext>Reopen, because it broke dom/xhtml/level3/core/nodereplacechild30.xhtml on GTK and on Qt:

--- /home/webkitbuildbot/slaves/release32bit-NRWT/buildslave/qt-linux-32-release-NRWT/build/layout-test-results/dom/xhtml/level3/core/nodereplacechild30-expected.txt 
+++ /home/webkitbuildbot/slaves/release32bit-NRWT/buildslave/qt-linux-32-release-NRWT/build/layout-test-results/dom/xhtml/level3/core/nodereplacechild30-actual.txt 
@@ -1,2 +1,3 @@
 Test	http://www.w3.org/2001/DOM-Test-Suite/level3/core/nodereplacechild30
-Status	Success
+Status	error
+Message	Error: NOT_FOUND_ERR: DOM Exception 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582910</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-20 03:45:18 -0700</bug_when>
    <thetext>Skipped on Qt - http://trac.webkit.org/changeset/111378/trunk/LayoutTests/platform/qt/Skipped

Please unskip with the proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583165</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-20 09:59:08 -0700</bug_when>
    <thetext>Since this caused a regression in core DOM code, rolling out could have been more appropriate.

Adam, do you plan to resolve this soon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583215</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-20 10:45:48 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Since this caused a regression in core DOM code, rolling out could have been more appropriate.
&gt; 
&gt; Adam, do you plan to resolve this soon?

I&apos;m looking into this now. Do you know much about these tests? The Chromium test expectations ignore them with this comment:

// XHTML tests.  These tests seem like they work, but only because the
// expected output expects to see JS errors.  There is no point in running
// these tests, because they are giving us a false sense of testing that isn&apos;t
// really happening.  Furthermore, since they appear to pass if we do try to
// run them, we can&apos;t even list them as permanently expected to fail.
WONTFIX SKIP : dom/xhtml = PASS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583227</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-20 10:56:02 -0700</bug_when>
    <thetext>Sorry, I don&apos;t know anything non-trivial about these tests. The comment in test expectations seems confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583265</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-20 11:19:50 -0700</bug_when>
    <thetext>Rolled out in http://trac.webkit.org/changeset/111415, somewhat mysterious.

And I&apos;d like to figure out why we&apos;re not running those tests on Chromium, since that one anyway seems to run fine (at least, it did before my change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583439</commentid>
    <comment_count>11</comment_count>
      <attachid>132894</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-20 14:17:20 -0700</bug_when>
    <thetext>Created attachment 132894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583452</commentid>
    <comment_count>12</comment_count>
      <attachid>132898</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-20 14:24:56 -0700</bug_when>
    <thetext>Created attachment 132898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583505</commentid>
    <comment_count>13</comment_count>
      <attachid>132898</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 15:10:53 -0700</bug_when>
    <thetext>Comment on attachment 132898
Patch

Clearing flags on attachment: 132898

Committed r111449: &lt;http://trac.webkit.org/changeset/111449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583506</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 15:10:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583664</commentid>
    <comment_count>15</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-20 17:43:19 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 132898 [details])
&gt; Clearing flags on attachment: 132898
&gt; 
&gt; Committed r111449: &lt;http://trac.webkit.org/changeset/111449&gt;

The code changes in r111449 are identical to those in r111310, so it’s no wonder that they caused dom/xhtml/level3/core/nodereplacechild30.xhtml to fail again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583665</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-20 17:44:22 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 132898 [details] [details])
&gt; &gt; Clearing flags on attachment: 132898
&gt; &gt; 
&gt; &gt; Committed r111449: &lt;http://trac.webkit.org/changeset/111449&gt;
&gt; 
&gt; The code changes in r111449 are identical to those in r111310, so it’s no wonder that they caused dom/xhtml/level3/core/nodereplacechild30.xhtml to fail again.

Arg, git fail. Fix coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583668</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-20 17:48:29 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; (From update of attachment 132898 [details] [details] [details])
&gt; &gt; &gt; Clearing flags on attachment: 132898
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r111449: &lt;http://trac.webkit.org/changeset/111449&gt;
&gt; &gt; 
&gt; &gt; The code changes in r111449 are identical to those in r111310, so it’s no wonder that they caused dom/xhtml/level3/core/nodereplacechild30.xhtml to fail again.
&gt; 
&gt; Arg, git fail. Fix coming.

Committed http://trac.webkit.org/changeset/111478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502809</commentid>
    <comment_count>18</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:02:37 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132697</attachid>
            <date>2012-03-19 16:07:59 -0700</date>
            <delta_ts>2012-03-20 14:17:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81579-20120319160758.patch</filename>
            <type>text/plain</type>
            <size>6451</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JhZTU3YmFjMzVmYzM3
NmUxYjRkZDMxZjcwMjg4NmIwNGQyNjY2OC4uNmQzMTI2MWUwNTkxYjY0YTQ2NWM5MzQ3M2ZjNDQ1
NzgyNTYxNWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAzLTE5ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlZmFjdG9yIENvbnRhaW5l
ck5vZGU6OnJlcGxhY2VDaGlsZCB0byBtYXRjaCBvdGhlciBtdXRhdGlvbiBtZXRob2RzIGFuZCBz
aGFyZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MTU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEEgZnV0dXJlIGNoYW5nZSB3aWxsIG1ha2UgdXNlIG9mIHRoZSBjb25zaXN0ZW5jeSBhbW9uZyBp
bnNlcnRCZWZvcmUvYXBwZW5kQ2hpbGQvcmVwbGFjZUNoaWxkCisgICAgICAgIHRvIGhhbmRsZSBp
bnNlcnRpb24gb2YgRG9jdW1lbnRGcmFnbWVudHMgbW9yZSBjbGVhbmx5LgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNo
aWxkKTogVXNlIGNvbGxlY3RUYXJnZXROb2RlcyByYXRoZXIgdGhhbiB3YWxraW5nIHRocm91Z2gg
RG9jdW1lbnRGcmFnbWVudCBjaGlsZHJlbi4KKyAgICAgICAgSW5zZXJ0IGJlZm9yZSByYXRoZXIg
dGhhbiBpbnNlcnRpbmcgYWZ0ZXIuIERpc3BhdGNoIHRvIG90aGVyIG1ldGhvZHMgdG8gdXBkYXRl
IHBhcmVudC9zaWJsaW5nIHBvaW50ZXJzLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9k
ZTo6YXBwZW5kQ2hpbGQpOiBDYWxsIGFwcGVuZENoaWxkVG9Db250YWluZXIgdG8gdXBkYXRlIHBh
cmVudC9zaWJsaW5nIHBvaW50ZXJzLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQpOiBVc2UgdHlwZSBpbmZlcmVuY2UgaW4gY2FsbCB0byBhcHBlbmRDaGls
ZFRvQ29udGFpbmVyLgorCiAyMDEyLTAzLTE5ICBNaWNoYWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFVwZGF0aW5nIFdlYkdyYXBoaWNzQ29udGV4dDNE
IE1lbW9yeUFsbG9jYXRpb24gY2FsbGJhY2sgdG8gYWNjZXB0IGEgc3RydWN0IHdpdGggaGF2ZSBi
YWNrYnVmZmVyIHN1Z2dlc3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5k
ZXggMTRmMjlhZWY2NjI1YTQ2ZmY3MTYwOTZhMmZiZjhkMmM1ODg1ZmUzMi4uY2M0MTIxNmRjNTg2
ZThmMzIxMjc2ZjliZWQ4ZWQ4ZTRhNDY3MzUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcApAQCAtMjg0LDI5ICsyODQsMjggQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNl
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2UKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJvb2wgaXNGcmFnbWVudCA9
IG5ld0NoaWxkLT5ub2RlVHlwZSgpID09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgJiYgIW5ld0No
aWxkLT5pc1NoYWRvd1Jvb3QoKTsKKyAgICBOb2RlVmVjdG9yIHRhcmdldHM7CisgICAgY29sbGVj
dFRhcmdldE5vZGVzKG5ld0NoaWxkLmdldCgpLCB0YXJnZXRzKTsKIAogICAgIC8vIEFkZCB0aGUg
bmV3IGNoaWxkKHJlbikKLSAgICBSZWZQdHI8Tm9kZT4gY2hpbGQgPSBpc0ZyYWdtZW50ID8gbmV3
Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5ld0NoaWxkOwotICAgIHdoaWxlIChjaGlsZCkgeworICAg
IGZvciAoTm9kZVZlY3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0YXJnZXRzLmJlZ2luKCk7IGl0
ICE9IHRhcmdldHMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgTm9kZSogY2hpbGQgPSBpdC0+Z2V0
KCk7CisKICAgICAgICAgLy8gSWYgdGhlIG5ldyBjaGlsZCBpcyBhbHJlYWR5IGluIHRoZSByaWdo
dCBwbGFjZSwgd2UncmUgZG9uZS4KICAgICAgICAgaWYgKHByZXYgJiYgKHByZXYgPT0gY2hpbGQg
fHwgcHJldiA9PSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpKQogICAgICAgICAgICAgYnJlYWs7
CiAKLSAgICAgICAgLy8gRm9yIGEgZnJhZ21lbnQgd2UgaGF2ZSBtb3JlIGNoaWxkcmVuIHRvIGRv
LgotICAgICAgICBSZWZQdHI8Tm9kZT4gbmV4dENoaWxkID0gaXNGcmFnbWVudCA/IGNoaWxkLT5u
ZXh0U2libGluZygpIDogMDsKLQogICAgICAgICAvLyBSZW1vdmUgY2hpbGQgZnJvbSBpdHMgb2xk
IHBvc2l0aW9uLgogICAgICAgICBpZiAoQ29udGFpbmVyTm9kZSogb2xkUGFyZW50ID0gY2hpbGQt
PnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgIG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQoY2hpbGQu
Z2V0KCksIGVjKTsKKyAgICAgICAgICAgIG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQoY2hpbGQsIGVj
KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAg
IC8vIER1ZSB0byBhcmJpdHJhcnkgY29kZSBydW5uaW5nIGluIHJlc3BvbnNlIHRvIGEgRE9NIG11
dGF0aW9uIGV2ZW50IGl0J3MKLSAgICAgICAgLy8gcG9zc2libGUgdGhhdCAicHJldiIgaXMgbm8g
bG9uZ2VyIGEgY2hpbGQgb2YgInRoaXMiLgorICAgICAgICAvLyBwb3NzaWJsZSB0aGF0ICJuZXh0
IiBpcyBubyBsb25nZXIgYSBjaGlsZCBvZiAidGhpcyIuCiAgICAgICAgIC8vIEl0J3MgYWxzbyBw
b3NzaWJsZSB0aGF0ICJjaGlsZCIgaGFzIGJlZW4gaW5zZXJ0ZWQgZWxzZXdoZXJlLgogICAgICAg
ICAvLyBJbiBlaXRoZXIgb2YgdGhvc2UgY2FzZXMsIHdlJ2xsIGp1c3Qgc3RvcC4KLSAgICAgICAg
aWYgKHByZXYgJiYgcHJldi0+cGFyZW50Tm9kZSgpICE9IHRoaXMpCisgICAgICAgIGlmIChuZXh0
ICYmIG5leHQtPnBhcmVudE5vZGUoKSAhPSB0aGlzKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGlmIChjaGlsZC0+cGFyZW50Tm9kZSgpKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMTUs
MzggKzMxNCwyMiBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogICAgICAgICBBU1NFUlQoIWNo
aWxkLT5wcmV2aW91c1NpYmxpbmcoKSk7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCks
IGNoaWxkLmdldCgpLCB0aGlzKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBjaGlsZCwgdGhpcyk7CiAjZW5kaWYKIAotICAg
ICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZC5nZXQoKSk7CisgICAgICAgIHRy
ZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAotICAgICAgICAvLyBBZGQgY2hpbGQg
YWZ0ZXIgInByZXYiLgorICAgICAgICAvLyBBZGQgY2hpbGQgYmVmb3JlICJuZXh0Ii4KICAgICAg
ICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwotICAgICAgICBOb2RlKiBuZXh0OwotICAgICAgICBp
ZiAocHJldikgewotICAgICAgICAgICAgbmV4dCA9IHByZXYtPm5leHRTaWJsaW5nKCk7Ci0gICAg
ICAgICAgICBBU1NFUlQobV9maXJzdENoaWxkICE9IG5leHQpOwotICAgICAgICAgICAgcHJldi0+
c2V0TmV4dFNpYmxpbmcoY2hpbGQuZ2V0KCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgbmV4dCA9IG1fZmlyc3RDaGlsZDsKLSAgICAgICAgICAgIG1fZmlyc3RDaGlsZCA9IGNoaWxk
LmdldCgpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChuZXh0KSB7Ci0gICAgICAgICAgICBBU1NF
UlQobV9sYXN0Q2hpbGQgIT0gcHJldik7Ci0gICAgICAgICAgICBBU1NFUlQobmV4dC0+cHJldmlv
dXNTaWJsaW5nKCkgPT0gcHJldik7Ci0gICAgICAgICAgICBuZXh0LT5zZXRQcmV2aW91c1NpYmxp
bmcoY2hpbGQuZ2V0KCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKG1f
bGFzdENoaWxkID09IHByZXYpOwotICAgICAgICAgICAgbV9sYXN0Q2hpbGQgPSBjaGlsZC5nZXQo
KTsKLSAgICAgICAgfQotICAgICAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwotICAgICAgICBj
aGlsZC0+c2V0UHJldmlvdXNTaWJsaW5nKHByZXYuZ2V0KCkpOwotICAgICAgICBjaGlsZC0+c2V0
TmV4dFNpYmxpbmcobmV4dCk7CisgICAgICAgIGlmIChuZXh0KQorICAgICAgICAgICAgaW5zZXJ0
QmVmb3JlQ29tbW9uKG5leHQuZ2V0KCksIGNoaWxkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgYXBwZW5kQ2hpbGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAgIGFsbG93RXZl
bnREaXNwYXRjaCgpOwogCi0gICAgICAgIGNoaWxkcmVuQ2hhbmdlZChmYWxzZSwgcHJldi5nZXQo
KSwgbmV4dCwgMSk7Ci0gICAgICAgIG5vdGlmeUNoaWxkSW5zZXJ0ZWQoY2hpbGQuZ2V0KCkpOwot
ICAgICAgICAgICAgICAgIAorICAgICAgICBjaGlsZHJlbkNoYW5nZWQoZmFsc2UsIHByZXYuZ2V0
KCksIG5leHQuZ2V0KCksIDEpOworICAgICAgICBub3RpZnlDaGlsZEluc2VydGVkKGNoaWxkKTsK
KwogICAgICAgICAvLyBBZGQgY2hpbGQgdG8gdGhlIHJlbmRlcmluZyB0cmVlCiAgICAgICAgIGlm
IChhdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0YWNoZWQoKSAmJiBjaGlsZC0+cGFyZW50Tm9kZSgp
ID09IHRoaXMpIHsKICAgICAgICAgICAgIGlmIChzaG91bGRMYXp5QXR0YWNoKQpAQCAtMzU3LDEw
ICszNDAsOCBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogCiAgICAgICAgIC8vIE5vdyB0aGF0
IHRoZSBjaGlsZCBpcyBhdHRhY2hlZCB0byB0aGUgcmVuZGVyIHRyZWUsIGRpc3BhdGNoCiAgICAg
ICAgIC8vIHRoZSByZWxldmFudCBtdXRhdGlvbiBldmVudHMuCi0gICAgICAgIGRpc3BhdGNoQ2hp
bGRJbnNlcnRpb25FdmVudHMoY2hpbGQuZ2V0KCkpOwotCisgICAgICAgIGRpc3BhdGNoQ2hpbGRJ
bnNlcnRpb25FdmVudHMoY2hpbGQpOwogICAgICAgICBwcmV2ID0gY2hpbGQ7Ci0gICAgICAgIGNo
aWxkID0gbmV4dENoaWxkLnJlbGVhc2UoKTsKICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVN
b2RpZmllZEV2ZW50KCk7CkBAIC02MzksMTMgKzYyMCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6
YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMs
IGJvCiAKICAgICAgICAgLy8gQXBwZW5kIGNoaWxkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKICAg
ICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwotICAgICAgICBjaGlsZC0+c2V0UGFyZW50KHRo
aXMpOwotICAgICAgICBpZiAobV9sYXN0Q2hpbGQpIHsKLSAgICAgICAgICAgIGNoaWxkLT5zZXRQ
cmV2aW91c1NpYmxpbmcobV9sYXN0Q2hpbGQpOwotICAgICAgICAgICAgbV9sYXN0Q2hpbGQtPnNl
dE5leHRTaWJsaW5nKGNoaWxkKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2ZpcnN0
Q2hpbGQgPSBjaGlsZDsKLSAgICAgICAgbV9sYXN0Q2hpbGQgPSBjaGlsZDsKKyAgICAgICAgYXBw
ZW5kQ2hpbGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAgIGFsbG93RXZlbnREaXNw
YXRjaCgpOwogCiAgICAgICAgIC8vIFNlbmQgbm90aWZpY2F0aW9uIGFib3V0IHRoZSBjaGlsZHJl
biBjaGFuZ2UuCkBAIC02NzgsNyArNjUzLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJB
ZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkKQogICAgIGZvcmJpZEV2ZW50RGlzcGF0
Y2goKTsKICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0Q2hpbGQ7CiAgICAgLy8gRklYTUU6IFRoaXMg
bWV0aG9kIHNob3VsZCB0YWtlIGEgUGFzc1JlZlB0ci4KLSAgICBhcHBlbmRDaGlsZFRvQ29udGFp
bmVyPE5vZGUsIENvbnRhaW5lck5vZGU+KG5ld0NoaWxkLmdldCgpLCB0aGlzKTsKKyAgICBhcHBl
bmRDaGlsZFRvQ29udGFpbmVyKG5ld0NoaWxkLmdldCgpLCB0aGlzKTsKICAgICB0cmVlU2NvcGUo
KS0+YWRvcHRJZk5lZWRlZChuZXdDaGlsZC5nZXQoKSk7CiAgICAgCiAgICAgYWxsb3dFdmVudERp
c3BhdGNoKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132894</attachid>
            <date>2012-03-20 14:17:20 -0700</date>
            <delta_ts>2012-03-20 14:24:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81579-20120320141719.patch</filename>
            <type>text/plain</type>
            <size>6572</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZkNzMxYWM4NmMzMzE4
M2FiMDczNTRhMzliZjhmM2I0NTg3YzY4Zi4uZDJkOTEyOThiNzE5MWQwOTI2YTk1N2I5NzYxNTc0
YmIxZGNiMDcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTIwICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlZmFjdG9yIENvbnRhaW5l
ck5vZGU6OnJlcGxhY2VDaGlsZCB0byBtYXRjaCBvdGhlciBtdXRhdGlvbiBtZXRob2RzIGFuZCBz
aGFyZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MTU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgT3Jp
Z2luYWxseSBsYW5kZWQgYXMgcjExMTMxMCwgdGhpcyBmaXhlcyBhIGJ1ZyBpbiByZXBsYWNlQ2hp
bGQKKyAgICAgICAgaW50cm9kdWNlZCB3aGVuIHN3aXRjaGluZyB0byB0aGUgaW5zZXJ0LWJlZm9y
ZSBsb2dpYy4KKworICAgICAgICBBIGZ1dHVyZSBjaGFuZ2Ugd2lsbCBtYWtlIHVzZSBvZiB0aGUg
Y29uc2lzdGVuY3kgYW1vbmcgaW5zZXJ0QmVmb3JlL2FwcGVuZENoaWxkL3JlcGxhY2VDaGlsZAor
ICAgICAgICB0byBoYW5kbGUgaW5zZXJ0aW9uIG9mIERvY3VtZW50RnJhZ21lbnRzIG1vcmUgY2xl
YW5seS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRh
aW5lck5vZGU6OnJlcGxhY2VDaGlsZCk6IFVzZSBjb2xsZWN0VGFyZ2V0Tm9kZXMgcmF0aGVyIHRo
YW4gd2Fsa2luZyB0aHJvdWdoIERvY3VtZW50RnJhZ21lbnQgY2hpbGRyZW4uCisgICAgICAgIElu
c2VydCBiZWZvcmUgcmF0aGVyIHRoYW4gaW5zZXJ0aW5nIGFmdGVyLiBEaXNwYXRjaCB0byBvdGhl
ciBtZXRob2RzIHRvIHVwZGF0ZSBwYXJlbnQvc2libGluZyBwb2ludGVycy4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKTogQ2FsbCBhcHBlbmRDaGlsZFRvQ29u
dGFpbmVyIHRvIHVwZGF0ZSBwYXJlbnQvc2libGluZyBwb2ludGVycy4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKTogVXNlIHR5cGUgaW5mZXJlbmNlIGlu
IGNhbGwgdG8gYXBwZW5kQ2hpbGRUb0NvbnRhaW5lci4KKwogMjAxMi0wMy0yMCAgQWRlbGUgUGV0
ZXJzb24gIDxhZGVsZUBhcHBsZS5jb20+CiAKICAgICAgICAgIkF0dGVtcHQgdG8gaW5zZXJ0IG5p
bCB2YWx1ZSAiIGV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgYXR0cmlidXRlZCBzdHJpbmcgQVBJcyBv
biBjb250ZW50IHdpdGggYSBjdXN0b20gZm9udApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCmluZGV4IDE0ZjI5YWVmNjYyNWE0NmZmNzE2MDk2YTJmYmY4ZDJjNTg4NWZlMzIuLmNjNDEy
MTZkYzU4NmU4ZjMyMTI3NmY5YmVkOGVkOGU0YTQ2NzM1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKQEAgLTI4NCwyOSArMjg0LDI4IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6
cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBF
eGNlCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGlzRnJh
Z21lbnQgPSBuZXdDaGlsZC0+bm9kZVR5cGUoKSA9PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFICYm
ICFuZXdDaGlsZC0+aXNTaGFkb3dSb290KCk7CisgICAgTm9kZVZlY3RvciB0YXJnZXRzOworICAg
IGNvbGxlY3RUYXJnZXROb2RlcyhuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cyk7CiAKICAgICAvLyBB
ZGQgdGhlIG5ldyBjaGlsZChyZW4pCi0gICAgUmVmUHRyPE5vZGU+IGNoaWxkID0gaXNGcmFnbWVu
dCA/IG5ld0NoaWxkLT5maXJzdENoaWxkKCkgOiBuZXdDaGlsZDsKLSAgICB3aGlsZSAoY2hpbGQp
IHsKKyAgICBmb3IgKE5vZGVWZWN0b3I6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdGFyZ2V0cy5iZWdp
bigpOyBpdCAhPSB0YXJnZXRzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIE5vZGUqIGNoaWxkID0g
aXQtPmdldCgpOworCiAgICAgICAgIC8vIElmIHRoZSBuZXcgY2hpbGQgaXMgYWxyZWFkeSBpbiB0
aGUgcmlnaHQgcGxhY2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmIChwcmV2ICYmIChwcmV2ID09
IGNoaWxkIHx8IHByZXYgPT0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSkKICAgICAgICAgICAg
IGJyZWFrOwogCi0gICAgICAgIC8vIEZvciBhIGZyYWdtZW50IHdlIGhhdmUgbW9yZSBjaGlsZHJl
biB0byBkby4KLSAgICAgICAgUmVmUHRyPE5vZGU+IG5leHRDaGlsZCA9IGlzRnJhZ21lbnQgPyBj
aGlsZC0+bmV4dFNpYmxpbmcoKSA6IDA7Ci0KICAgICAgICAgLy8gUmVtb3ZlIGNoaWxkIGZyb20g
aXRzIG9sZCBwb3NpdGlvbi4KICAgICAgICAgaWYgKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCA9
IGNoaWxkLT5wYXJlbnROb2RlKCkpCi0gICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92ZUNoaWxk
KGNoaWxkLmdldCgpLCBlYyk7CisgICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92ZUNoaWxkKGNo
aWxkLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICAvLyBEdWUgdG8gYXJiaXRyYXJ5IGNvZGUgcnVubmluZyBpbiByZXNwb25zZSB0byBh
IERPTSBtdXRhdGlvbiBldmVudCBpdCdzCi0gICAgICAgIC8vIHBvc3NpYmxlIHRoYXQgInByZXYi
IGlzIG5vIGxvbmdlciBhIGNoaWxkIG9mICJ0aGlzIi4KKyAgICAgICAgLy8gcG9zc2libGUgdGhh
dCAibmV4dCIgaXMgbm8gbG9uZ2VyIGEgY2hpbGQgb2YgInRoaXMiLgogICAgICAgICAvLyBJdCdz
IGFsc28gcG9zc2libGUgdGhhdCAiY2hpbGQiIGhhcyBiZWVuIGluc2VydGVkIGVsc2V3aGVyZS4K
ICAgICAgICAgLy8gSW4gZWl0aGVyIG9mIHRob3NlIGNhc2VzLCB3ZSdsbCBqdXN0IHN0b3AuCi0g
ICAgICAgIGlmIChwcmV2ICYmIHByZXYtPnBhcmVudE5vZGUoKSAhPSB0aGlzKQorICAgICAgICBp
ZiAobmV4dCAmJiBuZXh0LT5wYXJlbnROb2RlKCkgIT0gdGhpcykKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBpZiAoY2hpbGQtPnBhcmVudE5vZGUoKSkKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMzE1LDM4ICszMTQsMjIgQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2UKICAgICAgICAgQVNT
RVJUKCFjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
LSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1
bWVudCgpLCBjaGlsZC5nZXQoKSwgdGhpcyk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgY2hpbGQsIHRoaXMpOwogI2VuZGlm
CiAKLSAgICAgICAgdHJlZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQoY2hpbGQuZ2V0KCkpOworICAg
ICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZCk7CiAKLSAgICAgICAgLy8gQWRk
IGNoaWxkIGFmdGVyICJwcmV2Ii4KKyAgICAgICAgLy8gQWRkIGNoaWxkIGJlZm9yZSAibmV4dCIu
CiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKLSAgICAgICAgTm9kZSogbmV4dDsKLSAg
ICAgICAgaWYgKHByZXYpIHsKLSAgICAgICAgICAgIG5leHQgPSBwcmV2LT5uZXh0U2libGluZygp
OwotICAgICAgICAgICAgQVNTRVJUKG1fZmlyc3RDaGlsZCAhPSBuZXh0KTsKLSAgICAgICAgICAg
IHByZXYtPnNldE5leHRTaWJsaW5nKGNoaWxkLmdldCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIG5leHQgPSBtX2ZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICBtX2ZpcnN0Q2hpbGQg
PSBjaGlsZC5nZXQoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAobmV4dCkgewotICAgICAgICAg
ICAgQVNTRVJUKG1fbGFzdENoaWxkICE9IHByZXYpOwotICAgICAgICAgICAgQVNTRVJUKG5leHQt
PnByZXZpb3VzU2libGluZygpID09IHByZXYpOwotICAgICAgICAgICAgbmV4dC0+c2V0UHJldmlv
dXNTaWJsaW5nKGNoaWxkLmdldCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFT
U0VSVChtX2xhc3RDaGlsZCA9PSBwcmV2KTsKLSAgICAgICAgICAgIG1fbGFzdENoaWxkID0gY2hp
bGQuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgY2hpbGQtPnNldFBhcmVudCh0aGlzKTsKLSAg
ICAgICAgY2hpbGQtPnNldFByZXZpb3VzU2libGluZyhwcmV2LmdldCgpKTsKLSAgICAgICAgY2hp
bGQtPnNldE5leHRTaWJsaW5nKG5leHQpOworICAgICAgICBpZiAobmV4dCkKKyAgICAgICAgICAg
IGluc2VydEJlZm9yZUNvbW1vbihuZXh0LmdldCgpLCBjaGlsZCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGFwcGVuZENoaWxkVG9Db250YWluZXIoY2hpbGQsIHRoaXMpOwogICAgICAgICBh
bGxvd0V2ZW50RGlzcGF0Y2goKTsKIAotICAgICAgICBjaGlsZHJlbkNoYW5nZWQoZmFsc2UsIHBy
ZXYuZ2V0KCksIG5leHQsIDEpOwotICAgICAgICBub3RpZnlDaGlsZEluc2VydGVkKGNoaWxkLmdl
dCgpKTsKLSAgICAgICAgICAgICAgICAKKyAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKGZhbHNlLCBw
cmV2LmdldCgpLCBuZXh0LmdldCgpLCAxKTsKKyAgICAgICAgbm90aWZ5Q2hpbGRJbnNlcnRlZChj
aGlsZCk7CisKICAgICAgICAgLy8gQWRkIGNoaWxkIHRvIHRoZSByZW5kZXJpbmcgdHJlZQogICAg
ICAgICBpZiAoYXR0YWNoZWQoKSAmJiAhY2hpbGQtPmF0dGFjaGVkKCkgJiYgY2hpbGQtPnBhcmVu
dE5vZGUoKSA9PSB0aGlzKSB7CiAgICAgICAgICAgICBpZiAoc2hvdWxkTGF6eUF0dGFjaCkKQEAg
LTM1NywxMCArMzQwLDggQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2UKIAogICAgICAgICAvLyBO
b3cgdGhhdCB0aGUgY2hpbGQgaXMgYXR0YWNoZWQgdG8gdGhlIHJlbmRlciB0cmVlLCBkaXNwYXRj
aAogICAgICAgICAvLyB0aGUgcmVsZXZhbnQgbXV0YXRpb24gZXZlbnRzLgotICAgICAgICBkaXNw
YXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKGNoaWxkLmdldCgpKTsKLQorICAgICAgICBkaXNwYXRj
aENoaWxkSW5zZXJ0aW9uRXZlbnRzKGNoaWxkKTsKICAgICAgICAgcHJldiA9IGNoaWxkOwotICAg
ICAgICBjaGlsZCA9IG5leHRDaGlsZC5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hT
dWJ0cmVlTW9kaWZpZWRFdmVudCgpOwpAQCAtNjM5LDEzICs2MjAsNyBAQCBib29sIENvbnRhaW5l
ck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjLCBibwogCiAgICAgICAgIC8vIEFwcGVuZCBjaGlsZCB0byB0aGUgZW5kIG9mIHRoZSBs
aXN0CiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKLSAgICAgICAgY2hpbGQtPnNldFBh
cmVudCh0aGlzKTsKLSAgICAgICAgaWYgKG1fbGFzdENoaWxkKSB7Ci0gICAgICAgICAgICBjaGls
ZC0+c2V0UHJldmlvdXNTaWJsaW5nKG1fbGFzdENoaWxkKTsKLSAgICAgICAgICAgIG1fbGFzdENo
aWxkLT5zZXROZXh0U2libGluZyhjaGlsZCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
bV9maXJzdENoaWxkID0gY2hpbGQ7Ci0gICAgICAgIG1fbGFzdENoaWxkID0gY2hpbGQ7CisgICAg
ICAgIGFwcGVuZENoaWxkVG9Db250YWluZXIoY2hpbGQsIHRoaXMpOwogICAgICAgICBhbGxvd0V2
ZW50RGlzcGF0Y2goKTsKIAogICAgICAgICAvLyBTZW5kIG5vdGlmaWNhdGlvbiBhYm91dCB0aGUg
Y2hpbGRyZW4gY2hhbmdlLgpAQCAtNjc4LDcgKzY1Myw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkKICAgICBmb3JiaWRFdmVu
dERpc3BhdGNoKCk7CiAgICAgTm9kZSogbGFzdCA9IG1fbGFzdENoaWxkOwogICAgIC8vIEZJWE1F
OiBUaGlzIG1ldGhvZCBzaG91bGQgdGFrZSBhIFBhc3NSZWZQdHIuCi0gICAgYXBwZW5kQ2hpbGRU
b0NvbnRhaW5lcjxOb2RlLCBDb250YWluZXJOb2RlPihuZXdDaGlsZC5nZXQoKSwgdGhpcyk7Cisg
ICAgYXBwZW5kQ2hpbGRUb0NvbnRhaW5lcihuZXdDaGlsZC5nZXQoKSwgdGhpcyk7CiAgICAgdHJl
ZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQobmV3Q2hpbGQuZ2V0KCkpOwogICAgIAogICAgIGFsbG93
RXZlbnREaXNwYXRjaCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132898</attachid>
            <date>2012-03-20 14:24:56 -0700</date>
            <delta_ts>2012-03-20 15:10:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81579-20120320142455.patch</filename>
            <type>text/plain</type>
            <size>6576</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZkNzMxYWM4NmMzMzE4
M2FiMDczNTRhMzliZjhmM2I0NTg3YzY4Zi4uMjcyN2NlM2EyZmRjYzU3ODRhM2FmZmNlNjZlYzkw
YTJiZTgxODQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTIwICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlZmFjdG9yIENvbnRhaW5l
ck5vZGU6OnJlcGxhY2VDaGlsZCB0byBtYXRjaCBvdGhlciBtdXRhdGlvbiBtZXRob2RzIGFuZCBz
aGFyZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MTU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE9yaWdpbmFsbHkgbGFuZGVkIGFzIHIxMTEzMTAsIHRoaXMgZml4ZXMgYSBidWcgaW4gcmVwbGFj
ZUNoaWxkCisgICAgICAgIGludHJvZHVjZWQgd2hlbiBzd2l0Y2hpbmcgdG8gdGhlIGluc2VydC1i
ZWZvcmUgbG9naWMuCisKKyAgICAgICAgQSBmdXR1cmUgY2hhbmdlIHdpbGwgbWFrZSB1c2Ugb2Yg
dGhlIGNvbnNpc3RlbmN5IGFtb25nIGluc2VydEJlZm9yZS9hcHBlbmRDaGlsZC9yZXBsYWNlQ2hp
bGQKKyAgICAgICAgdG8gaGFuZGxlIGluc2VydGlvbiBvZiBEb2N1bWVudEZyYWdtZW50cyBtb3Jl
IGNsZWFubHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQpOiBVc2UgY29sbGVjdFRhcmdldE5vZGVzIHJhdGhl
ciB0aGFuIHdhbGtpbmcgdGhyb3VnaCBEb2N1bWVudEZyYWdtZW50IGNoaWxkcmVuLgorICAgICAg
ICBJbnNlcnQgYmVmb3JlIHJhdGhlciB0aGFuIGluc2VydGluZyBhZnRlci4gRGlzcGF0Y2ggdG8g
b3RoZXIgbWV0aG9kcyB0byB1cGRhdGUgcGFyZW50L3NpYmxpbmcgcG9pbnRlcnMuCisgICAgICAg
IChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZCk6IENhbGwgYXBwZW5kQ2hpbGRU
b0NvbnRhaW5lciB0byB1cGRhdGUgcGFyZW50L3NpYmxpbmcgcG9pbnRlcnMuCisgICAgICAgIChX
ZWJDb3JlOjpDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZCk6IFVzZSB0eXBlIGluZmVyZW5j
ZSBpbiBjYWxsIHRvIGFwcGVuZENoaWxkVG9Db250YWluZXIuCisKIDIwMTItMDMtMjAgIEFkZWxl
IFBldGVyc29uICA8YWRlbGVAYXBwbGUuY29tPgogCiAgICAgICAgICJBdHRlbXB0IHRvIGluc2Vy
dCBuaWwgdmFsdWUgIiBleGNlcHRpb24gd2hlbiBjYWxsaW5nIGF0dHJpYnV0ZWQgc3RyaW5nIEFQ
SXMgb24gY29udGVudCB3aXRoIGEgY3VzdG9tIGZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAppbmRleCAxNGYyOWFlZjY2MjVhNDZmZjcxNjA5NmEyZmJmOGQyYzU4ODVmZTMyLi5j
YzQxMjE2ZGM1ODZlOGYzMjEyNzZmOWJlZDhlZDhlNGE0NjczNTIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCkBAIC0yODQsMjkgKzI4NCwyOCBAQCBib29sIENvbnRhaW5lck5v
ZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGls
ZCwgRXhjZQogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYm9vbCBp
c0ZyYWdtZW50ID0gbmV3Q2hpbGQtPm5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfRlJBR01FTlRfTk9E
RSAmJiAhbmV3Q2hpbGQtPmlzU2hhZG93Um9vdCgpOworICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsK
KyAgICBjb2xsZWN0VGFyZ2V0Tm9kZXMobmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMpOwogCiAgICAg
Ly8gQWRkIHRoZSBuZXcgY2hpbGQocmVuKQotICAgIFJlZlB0cjxOb2RlPiBjaGlsZCA9IGlzRnJh
Z21lbnQgPyBuZXdDaGlsZC0+Zmlyc3RDaGlsZCgpIDogbmV3Q2hpbGQ7Ci0gICAgd2hpbGUgKGNo
aWxkKSB7CisgICAgZm9yIChOb2RlVmVjdG9yOjpjb25zdF9pdGVyYXRvciBpdCA9IHRhcmdldHMu
YmVnaW4oKTsgaXQgIT0gdGFyZ2V0cy5lbmQoKTsgKytpdCkgeworICAgICAgICBOb2RlKiBjaGls
ZCA9IGl0LT5nZXQoKTsKKwogICAgICAgICAvLyBJZiB0aGUgbmV3IGNoaWxkIGlzIGFscmVhZHkg
aW4gdGhlIHJpZ2h0IHBsYWNlLCB3ZSdyZSBkb25lLgogICAgICAgICBpZiAocHJldiAmJiAocHJl
diA9PSBjaGlsZCB8fCBwcmV2ID09IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkpCiAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICAvLyBGb3IgYSBmcmFnbWVudCB3ZSBoYXZlIG1vcmUgY2hp
bGRyZW4gdG8gZG8uCi0gICAgICAgIFJlZlB0cjxOb2RlPiBuZXh0Q2hpbGQgPSBpc0ZyYWdtZW50
ID8gY2hpbGQtPm5leHRTaWJsaW5nKCkgOiAwOwotCiAgICAgICAgIC8vIFJlbW92ZSBjaGlsZCBm
cm9tIGl0cyBvbGQgcG9zaXRpb24uCiAgICAgICAgIGlmIChDb250YWluZXJOb2RlKiBvbGRQYXJl
bnQgPSBjaGlsZC0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVD
aGlsZChjaGlsZC5nZXQoKSwgZWMpOworICAgICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVDaGls
ZChjaGlsZCwgZWMpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgLy8gRHVlIHRvIGFyYml0cmFyeSBjb2RlIHJ1bm5pbmcgaW4gcmVzcG9uc2Ug
dG8gYSBET00gbXV0YXRpb24gZXZlbnQgaXQncwotICAgICAgICAvLyBwb3NzaWJsZSB0aGF0ICJw
cmV2IiBpcyBubyBsb25nZXIgYSBjaGlsZCBvZiAidGhpcyIuCisgICAgICAgIC8vIHBvc3NpYmxl
IHRoYXQgIm5leHQiIGlzIG5vIGxvbmdlciBhIGNoaWxkIG9mICJ0aGlzIi4KICAgICAgICAgLy8g
SXQncyBhbHNvIHBvc3NpYmxlIHRoYXQgImNoaWxkIiBoYXMgYmVlbiBpbnNlcnRlZCBlbHNld2hl
cmUuCiAgICAgICAgIC8vIEluIGVpdGhlciBvZiB0aG9zZSBjYXNlcywgd2UnbGwganVzdCBzdG9w
LgotICAgICAgICBpZiAocHJldiAmJiBwcmV2LT5wYXJlbnROb2RlKCkgIT0gdGhpcykKKyAgICAg
ICAgaWYgKG5leHQgJiYgbmV4dC0+cGFyZW50Tm9kZSgpICE9IHRoaXMpCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgaWYgKGNoaWxkLT5wYXJlbnROb2RlKCkpCiAgICAgICAgICAgICBicmVh
azsKQEAgLTMxNSwzOCArMzE0LDIyIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAgICAgICAg
IEFTU0VSVCghY2hpbGQtPnByZXZpb3VzU2libGluZygpKTsKIAogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUo
ZG9jdW1lbnQoKSwgY2hpbGQuZ2V0KCksIHRoaXMpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNl
bmRpZgogCi0gICAgICAgIHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkLmdldCgpKTsK
KyAgICAgICAgdHJlZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQoY2hpbGQpOwogCi0gICAgICAgIC8v
IEFkZCBjaGlsZCBhZnRlciAicHJldiIuCisgICAgICAgIC8vIEFkZCBjaGlsZCBiZWZvcmUgIm5l
eHQiLgogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7Ci0gICAgICAgIE5vZGUqIG5leHQ7
Ci0gICAgICAgIGlmIChwcmV2KSB7Ci0gICAgICAgICAgICBuZXh0ID0gcHJldi0+bmV4dFNpYmxp
bmcoKTsKLSAgICAgICAgICAgIEFTU0VSVChtX2ZpcnN0Q2hpbGQgIT0gbmV4dCk7Ci0gICAgICAg
ICAgICBwcmV2LT5zZXROZXh0U2libGluZyhjaGlsZC5nZXQoKSk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBuZXh0ID0gbV9maXJzdENoaWxkOwotICAgICAgICAgICAgbV9maXJzdENo
aWxkID0gY2hpbGQuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG5leHQpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChtX2xhc3RDaGlsZCAhPSBwcmV2KTsKLSAgICAgICAgICAgIEFTU0VSVChu
ZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA9PSBwcmV2KTsKLSAgICAgICAgICAgIG5leHQtPnNldFBy
ZXZpb3VzU2libGluZyhjaGlsZC5nZXQoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBBU1NFUlQobV9sYXN0Q2hpbGQgPT0gcHJldik7Ci0gICAgICAgICAgICBtX2xhc3RDaGlsZCA9
IGNoaWxkLmdldCgpOwotICAgICAgICB9Ci0gICAgICAgIGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7
Ci0gICAgICAgIGNoaWxkLT5zZXRQcmV2aW91c1NpYmxpbmcocHJldi5nZXQoKSk7Ci0gICAgICAg
IGNoaWxkLT5zZXROZXh0U2libGluZyhuZXh0KTsKKyAgICAgICAgaWYgKG5leHQpCisgICAgICAg
ICAgICBpbnNlcnRCZWZvcmVDb21tb24obmV4dC5nZXQoKSwgY2hpbGQpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNoaWxkLCB0aGlzKTsKICAgICAg
ICAgYWxsb3dFdmVudERpc3BhdGNoKCk7CiAKLSAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKGZhbHNl
LCBwcmV2LmdldCgpLCBuZXh0LCAxKTsKLSAgICAgICAgbm90aWZ5Q2hpbGRJbnNlcnRlZChjaGls
ZC5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgCisgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChmYWxz
ZSwgcHJldi5nZXQoKSwgbmV4dC5nZXQoKSwgMSk7CisgICAgICAgIG5vdGlmeUNoaWxkSW5zZXJ0
ZWQoY2hpbGQpOworCiAgICAgICAgIC8vIEFkZCBjaGlsZCB0byB0aGUgcmVuZGVyaW5nIHRyZWUK
ICAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpICYmIGNoaWxkLT5w
YXJlbnROb2RlKCkgPT0gdGhpcykgewogICAgICAgICAgICAgaWYgKHNob3VsZExhenlBdHRhY2gp
CkBAIC0zNTcsMTAgKzM0MCw4IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAKICAgICAgICAg
Ly8gTm93IHRoYXQgdGhlIGNoaWxkIGlzIGF0dGFjaGVkIHRvIHRoZSByZW5kZXIgdHJlZSwgZGlz
cGF0Y2gKICAgICAgICAgLy8gdGhlIHJlbGV2YW50IG11dGF0aW9uIGV2ZW50cy4KLSAgICAgICAg
ZGlzcGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSk7Ci0KKyAgICAgICAgZGlz
cGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZCk7CiAgICAgICAgIHByZXYgPSBjaGlsZDsK
LSAgICAgICAgY2hpbGQgPSBuZXh0Q2hpbGQucmVsZWFzZSgpOwogICAgIH0KIAogICAgIGRpc3Bh
dGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKQEAgLTYzOSwxMyArNjIwLDcgQEAgYm9vbCBDb250
YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRp
b25Db2RlJiBlYywgYm8KIAogICAgICAgICAvLyBBcHBlbmQgY2hpbGQgdG8gdGhlIGVuZCBvZiB0
aGUgbGlzdAogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7Ci0gICAgICAgIGNoaWxkLT5z
ZXRQYXJlbnQodGhpcyk7Ci0gICAgICAgIGlmIChtX2xhc3RDaGlsZCkgewotICAgICAgICAgICAg
Y2hpbGQtPnNldFByZXZpb3VzU2libGluZyhtX2xhc3RDaGlsZCk7Ci0gICAgICAgICAgICBtX2xh
c3RDaGlsZC0+c2V0TmV4dFNpYmxpbmcoY2hpbGQpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIG1fZmlyc3RDaGlsZCA9IGNoaWxkOwotICAgICAgICBtX2xhc3RDaGlsZCA9IGNoaWxkOwor
ICAgICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNoaWxkLCB0aGlzKTsKICAgICAgICAgYWxs
b3dFdmVudERpc3BhdGNoKCk7CiAKICAgICAgICAgLy8gU2VuZCBub3RpZmljYXRpb24gYWJvdXQg
dGhlIGNoaWxkcmVuIGNoYW5nZS4KQEAgLTY3OCw3ICs2NTMsNyBAQCB2b2lkIENvbnRhaW5lck5v
ZGU6OnBhcnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQpCiAgICAgZm9yYmlk
RXZlbnREaXNwYXRjaCgpOwogICAgIE5vZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKICAgICAvLyBG
SVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIHRha2UgYSBQYXNzUmVmUHRyLgotICAgIGFwcGVuZENo
aWxkVG9Db250YWluZXI8Tm9kZSwgQ29udGFpbmVyTm9kZT4obmV3Q2hpbGQuZ2V0KCksIHRoaXMp
OworICAgIGFwcGVuZENoaWxkVG9Db250YWluZXIobmV3Q2hpbGQuZ2V0KCksIHRoaXMpOwogICAg
IHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKG5ld0NoaWxkLmdldCgpKTsKICAgICAKICAgICBh
bGxvd0V2ZW50RGlzcGF0Y2goKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>