<?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>41921</bug_id>
          
          <creation_ts>2010-07-08 17:36:19 -0700</creation_ts>
          <short_desc>Coalesce text nodes when foster parenting</short_desc>
          <delta_ts>2010-07-23 22:24:11 -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>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>
          
          <blocked>41123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>248653</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 17:36:19 -0700</bug_when>
    <thetext>Coalesce text nodes when foster parenting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248655</commentid>
    <comment_count>1</comment_count>
      <attachid>60989</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 17:41:46 -0700</bug_when>
    <thetext>Created attachment 60989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248679</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-08 19:12:12 -0700</bug_when>
    <thetext>This feels wrong. Why is the if inside attach at site instead of Just having two separate methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248682</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 19:18:50 -0700</bug_when>
    <thetext>Yeah, there&apos;s something wrong in the layering.  I&apos;m inclined to land this patch and then think the whole class through in another patch once we see the foreign content part.  The class isn&apos;t that complicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248766</commentid>
    <comment_count>4</comment_count>
      <attachid>60989</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-08 23:37:52 -0700</bug_when>
    <thetext>Comment on attachment 60989
Patch

Drive-by comments:

&gt; +        // FIXME: We need an insertElement which does not send mutation events.

One way to deal with this is to create a function that promises it won&apos;t send mutation events, even if it can&apos;t yet deliver on that promise. Then you only need the FIXME in one place.

Generally speaking we should probably have parents in the HTML parser be Element* instead of Node*. We should change things around to make that happen because Element has more efficient versions of some of the functions that you can call on Node in a less efficient fashion.

I might get a chance to review this later, although I assume Eric will beat me to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248768</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 23:41:58 -0700</bug_when>
    <thetext>&gt; One way to deal with this is to create a function that promises it won&apos;t send mutation events, even if it can&apos;t yet deliver on that promise. Then you only need the FIXME in one place.

That&apos;s a good idea.

&gt; Generally speaking we should probably have parents in the HTML parser be Element* instead of Node*. We should change things around to make that happen because Element has more efficient versions of some of the functions that you can call on Node in a less efficient fashion.

We can work towards that.  We need to use nodes sometimes because we need to attach things to the document occasionally.

&gt; I might get a chance to review this later, although I assume Eric will beat me to it.

You&apos;re welcome to review it, but this patch is ugly.  We&apos;re learning more about what this class needs to do, and it&apos;s internal structure hasn&apos;t quite caught up yet.  I&apos;ll try to make the class beautiful before we&apos;re done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248866</commentid>
    <comment_count>6</comment_count>
      <attachid>60989</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-09 02:49:33 -0700</bug_when>
    <thetext>Comment on attachment 60989
Patch

Sigh.  We need to fix this.  But I agree, it is clearer to land it first and then work from the fixed version towards a saner wholistic design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248869</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-09 02:58:11 -0700</bug_when>
    <thetext>Committed r62924: &lt;http://trac.webkit.org/changeset/62924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249021</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-09 08:16:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Generally speaking we should probably have parents in the HTML parser be Element* instead of Node*. We should change things around to make that happen because Element has more efficient versions of some of the functions that you can call on Node in a less efficient fashion.
&gt; 
&gt; We can work towards that.  We need to use nodes sometimes because we need to attach things to the document occasionally.

If it  can be a document, then we can still at least use ContainerNode*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255664</commentid>
    <comment_count>9</comment_count>
      <attachid>60989</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-23 22:24:11 -0700</bug_when>
    <thetext>Comment on attachment 60989
Patch

Clearing commit-queue flag to get this out of the commit-queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60989</attachid>
            <date>2010-07-08 17:41:46 -0700</date>
            <delta_ts>2010-07-23 22:24:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41921-20100708174144.patch</filename>
            <type>text/plain</type>
            <size>11266</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzMwNzY1ZTc1YzBmNmQxMTZjNTNiYjQ4OGYwNjliODM4NjRkYTNlLi5lZTRhOTk4
Yzk3NDIxNGNhNjE1ODVmZmFhZmU4YWMyN2ZmNzk5NGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBDb2FsZXNj
ZSB0ZXh0IG5vZGVzIHdoZW4gZm9zdGVyIHBhcmVudGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE5MjEKKworICAgICAgICBZYXkgdGVzdCBwcm9n
cmVzc2lvbi4KKworICAgICAgICAqIGh0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQ6
CisKKzIwMTAtMDctMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBJbXBsZW1lbnRpbmcgcGVu
ZGluZyB0YWJsZSBjaGFyYWN0ZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MTkxNgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4
cGVjdGVkLWh0bWw1LnR4dAppbmRleCA4NmRhNDhkZmE1ZDYwMjg5MmRjNmI5MjQ3ZGI5MDJlN2Rk
NTdmY2U2Li5mMzc2Yzc3ODczZDY0OTc2M2E4MzRiNjJlNjcwMGU0NWVkMDZmY2UyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQKQEAgLTUsMTEg
KzUsOSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogRk9PPHNwYW4+QkFSPC9zcGFuPkJBWgog
Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluCiByZXNvdXJjZXMvdGVzdHMxLmRhdDoKIDMwCi0zMgog
NTIKIDUzCiA3OAotNzkKIDgwCiAxMDMKIApAQCAtNTQsNDQgKzUyLDYgQEAgRXhwZWN0ZWQ6CiB8
ICAgICA8YT4KIHwgICAgICAgIlkiCiAKLVRlc3QgMzIgb2YgMTEzIGluIHJlc291cmNlcy90ZXN0
czEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IS0tLS0tPjxmb250PjxkaXY+aGVsbG88dGFibGU+ZXhj
aXRlITxiPm1lITx0aD48aT5wbGVhc2UhPC90cj48IS0tWC0tPgotR290OgotfCA8IS0tIC0gLS0+
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPGZvbnQ+Ci18ICAgICAg
IDxkaXY+Ci18ICAgICAgICAgImhlbGxvIgotfCAgICAgICAgICJleGNpdGUhIgotfCAgICAgICAg
IDxiPgotfCAgICAgICAgICAgIm1lISIKLXwgICAgICAgICA8dGFibGU+Ci18ICAgICAgICAgICA8
dGJvZHk+Ci18ICAgICAgICAgICAgIDx0cj4KLXwgICAgICAgICAgICAgICA8dGg+Ci18ICAgICAg
ICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgICAgInBsZWFzZSEiCi18ICAgICAgICAg
ICAgIDwhLS0gWCAtLT4KLUV4cGVjdGVkOgotfCA8IS0tIC0gLS0+Ci18IDxodG1sPgotfCAgIDxo
ZWFkPgotfCAgIDxib2R5PgotfCAgICAgPGZvbnQ+Ci18ICAgICAgIDxkaXY+Ci18ICAgICAgICAg
ImhlbGxvZXhjaXRlISIKLXwgICAgICAgICA8Yj4KLXwgICAgICAgICAgICJtZSEiCi18ICAgICAg
ICAgPHRhYmxlPgotfCAgICAgICAgICAgPHRib2R5PgotfCAgICAgICAgICAgICA8dHI+Ci18ICAg
ICAgICAgICAgICAgPHRoPgotfCAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAg
ICAgICJwbGVhc2UhIgotfCAgICAgICAgICAgICA8IS0tIFggLS0+Ci0KIFRlc3QgNTIgb2YgMTEz
IGluIHJlc291cmNlcy90ZXN0czEuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8cCBpZD1hPjxiPjxwIGlk
PWI+PC9iPlRFU1QKIEdvdDoKQEAgLTE3OSw0MCArMTM5LDYgQEAgRXhwZWN0ZWQ6CiB8ICAgICAg
IGhyZWY9ImZvbyIKIHwgICAgICAgImFvZSIKIAotVGVzdCA3OSBvZiAxMTMgaW4gcmVzb3VyY2Vz
L3Rlc3RzMS5kYXQgZmFpbGVkLiBJbnB1dDoKLTxhIGhyZWY9ImJsYWgiPmFiYTx0YWJsZT48dHI+
PHRkPjxhIGhyZWY9ImZvbyI+YnI8L3RkPjwvdHI+eDwvdGFibGU+YW9lCi1Hb3Q6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPGE+Ci18ICAgICAgIGhyZWY9ImJsYWgi
Ci18ICAgICAgICJhYmEiCi18ICAgICAgICJ4IgotfCAgICAgICA8dGFibGU+Ci18ICAgICAgICAg
PHRib2R5PgotfCAgICAgICAgICAgPHRyPgotfCAgICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAg
ICAgICAgPGE+Ci18ICAgICAgICAgICAgICAgICBocmVmPSJmb28iCi18ICAgICAgICAgICAgICAg
ICAiYnIiCi18ICAgICAgICJhb2UiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18
ICAgPGJvZHk+Ci18ICAgICA8YT4KLXwgICAgICAgaHJlZj0iYmxhaCIKLXwgICAgICAgImFiYXgi
Ci18ICAgICAgIDx0YWJsZT4KLXwgICAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgICA8dHI+Ci18
ICAgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgICA8YT4KLXwgICAgICAgICAgICAgICAg
IGhyZWY9ImZvbyIKLXwgICAgICAgICAgICAgICAgICJiciIKLXwgICAgICAgImFvZSIKLQogVGVz
dCA4MCBvZiAxMTMgaW4gcmVzb3VyY2VzL3Rlc3RzMS5kYXQgZmFpbGVkLiBJbnB1dDoKIDx0YWJs
ZT48YSBocmVmPSJibGFoIj5hYmE8dHI+PHRkPjxhIGhyZWY9ImZvbyI+YnI8L3RkPjwvdHI+eDwv
dGFibGU+YW9lCiBHb3Q6CkBAIC00NTUsOCArMzgxLDYgQEAgRXhwZWN0ZWQ6CiByZXNvdXJjZXMv
dGVzdHM3LmRhdDoKIDI0CiAyNwotMjgKLTI5CiAzMAogCiBUZXN0IDI0IG9mIDMwIGluIHJlc291
cmNlcy90ZXN0czcuZGF0IGZhaWxlZC4gSW5wdXQ6CkBAIC00OTcsNDkgKzQyMSw2IEBAIEV4cGVj
dGVkOgogfCAgICAgPGI+CiB8ICAgICAgICJjY2MiCiAKLVRlc3QgMjggb2YgMzAgaW4gcmVzb3Vy
Y2VzL3Rlc3RzNy5kYXQgZmFpbGVkLiBJbnB1dDoKLUE8dGFibGU+PHRyPiBCPC90cj4gQjwvdGFi
bGU+Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIkEiCi18
ICAgICAiIEIiCi18ICAgICAiIEIiCi18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwg
ICAgICAgICA8dHI+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+
Ci18ICAgICAiQSBCIEIiCi18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAg
ICA8dHI+Ci0KLVRlc3QgMjkgb2YgMzAgaW4gcmVzb3VyY2VzL3Rlc3RzNy5kYXQgZmFpbGVkLiBJ
bnB1dDoKLUE8dGFibGU+PHRyPiBCPC90cj4gPC9lbT5DPC90YWJsZT4KLUdvdDoKLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiQSIKLXwgICAgICIgQiIKLXwgICAgIDx0
YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAiIEMiCi1F
eHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiQSBCQyIK
LXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAg
ICAiICIKLQogVGVzdCAzMCBvZiAzMCBpbiByZXNvdXJjZXMvdGVzdHM3LmRhdCBmYWlsZWQuIElu
cHV0OgogPHNlbGVjdD48a2V5Z2VuPgogR290OgpAQCAtNTYwLDI0ICs0NDEsOCBAQCBFeHBlY3Rl
ZDoKIHwgICA8Ym9keT4KIHwgICAgIDxzZWxlY3Q+CiB8ICAgICA8a2V5Z2VuPgotcmVzb3VyY2Vz
L3Rlc3RzOC5kYXQ6Ci02CityZXNvdXJjZXMvdGVzdHM4LmRhdDogUEFTUwogCi1UZXN0IDYgb2Yg
OSBpbiByZXNvdXJjZXMvdGVzdHM4LmRhdCBmYWlsZWQuIElucHV0OgoteDx0YWJsZT54Ci1Hb3Q6
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIngiCi18ICAgICAieCIK
LXwgICAgIDx0YWJsZT4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgICJ4eCIKLXwgICAgIDx0YWJsZT4KIHJlc291cmNlcy90ZXN0czkuZGF0OgogMQog
MgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAwMmE2YWM3NWYwNTUxMjUxOTk5YzRmZjU0ZTE5OGRjMjM1NzYzNmNlLi45MjllNGVkZDU2Yzg5
YzU2YmYxYjc5ZmFjZmYxMmUwYjg4OTg3Yzk4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDI5IEBACiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgQ29hbGVzY2UgdGV4dCBub2RlcyB3
aGVuIGZvc3RlciBwYXJlbnRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQxOTIxCisKKyAgICAgICAgSW50cm9kdWNlcyB0aGUgbm90aW9uIG9mIGFu
IEF0dGFjaG1lbnRTaXRlIHRvIHRoZSBvdmVyYWxsCisgICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlLiAgTWF5YmUgd2Ugc2hvdWxkIHJlbmFtZSBIVE1MQ29uc3RydWN0aW9uU2l0ZSB0bworICAg
ICAgICBIVE1MQ29uc3RydWN0aW9uQXJlYSBzaW5jZSB3ZSBjb25zdHJ1Y3QgdGhpbmdzIGFsbCBv
dmVyIHRoZSB0cmVlPyAgOikKKworICAgICAgICBUaGVyZSdzIHNvbWV0aGluZyB3cm9uZyBpbiB0
aGUgaW50ZXJuYWwgbGF5ZXJpbmcgaW4gdGhpcyBjbGFzcywgYnV0IEkKKyAgICAgICAgY2FuJ3Qg
cXVpdGUgc2VlIHdoYXQgaXQgaXMuICBJIGFkZGVkIGEgRklYTUUgZm9yIHRoZSBzb21lIG9mIHRo
ZQorICAgICAgICBzeW1wdG9tcy4KKworICAgICAgICAqIGh0bWwvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmF0dGFjaCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoQXRTaXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmZvc3RlclBhcmVudCk6
CisgICAgICAgICogaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oOgorCisyMDEwLTA3LTA4ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKICAgICAgICAgSW1wbGVtZW50aW5nIHBlbmRpbmcgdGFibGUgY2hhcmFj
dGVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE5
MTYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggOTBmZjVhMGViNWRm
MWU4OTNlNTBlYTE3ZTAxZjI3NDQ0MmE0MjY1Mi4uN2MwNzQ1MDEzOGQ5NDM4NDYzY2VhZTUzMzE0
NDEzY2VkMzZmOTVjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC03
OCw2ICs3OCw5IEBAIFBhc3NSZWZQdHI8Q2hpbGRUeXBlPiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
YXR0YWNoKE5vZGUqIHBhcmVudCwgUGFzc1JlZlB0cjxDaGlsCiB7CiAgICAgUmVmUHRyPENoaWxk
VHlwZT4gY2hpbGQgPSBwcnBDaGlsZDsKIAorICAgIC8vIEZJWE1FOiBJdCdzIGNvbmZ1c2luZyB0
aGF0IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjphdHRhY2ggZG9lcyB0aGUgbWFnaWMKKyAgICAvLyBy
ZWRpcmVjdGlvbiB0byB0aGUgZm9zdGVyIHBhcmVudCBidXQgSFRNTENvbnN0cnVjdGlvblNpdGU6
OmF0dGFjaEF0U2l0ZQorICAgIC8vIGRvZXNuJ3QuICBJdCBmZWVscyBsaWtlIHdlJ3JlIG1pc3Np
bmcgYSBjb25jZXB0IHNvbWVob3cuCiAgICAgaWYgKG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBh
cmVudCkgewogICAgICAgICBmb3N0ZXJQYXJlbnQoY2hpbGQuZ2V0KCkpOwogICAgICAgICByZXR1
cm4gY2hpbGQucmVsZWFzZSgpOwpAQCAtOTMsNiArOTYsMjAgQEAgUGFzc1JlZlB0cjxDaGlsZFR5
cGU+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjphdHRhY2goTm9kZSogcGFyZW50LCBQYXNzUmVmUHRy
PENoaWwKICAgICByZXR1cm4gY2hpbGQucmVsZWFzZSgpOwogfQogCit2b2lkIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjphdHRhY2hBdFNpdGUoY29uc3QgQXR0YWNobWVudFNpdGUmIHNpdGUsIFBhc3NS
ZWZQdHI8Tm9kZT4gY2hpbGQpCit7CisgICAgaWYgKHNpdGUubmV4dENoaWxkKSB7CisgICAgICAg
IC8vIEZJWE1FOiBXZSBuZWVkIGFuIGluc2VydEVsZW1lbnQgd2hpY2ggZG9lcyBub3Qgc2VuZCBt
dXRhdGlvbiBldmVudHMuCisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICBz
aXRlLnBhcmVudC0+aW5zZXJ0QmVmb3JlKGNoaWxkLCBzaXRlLm5leHRDaGlsZCwgZWMpOworICAg
ICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byBjYWxsIGF0dGFjaCgpPworICAgICAgICBBU1NF
UlQoIWVjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaXRlLnBhcmVudC0+cGFyc2Vy
QWRkQ2hpbGQoY2hpbGQpOworICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIGNhbGwgYXR0YWNo
KCk/Cit9CisKIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZShEb2N1
bWVudCogZG9jdW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJt
aXNzaW9uKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fZnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uKHNjcmlwdGluZ1Blcm1pc3Npb24pCkBAIC0yMjEsMTYgKzIzOCwyMiBA
QCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRTY3JpcHRFbGVtZW50KEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHRO
b2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycykKIHsKLSAgICBpZiAoTm9kZSogbGFzdENoaWxk
ID0gY3VycmVudEVsZW1lbnQoKS0+bGFzdENoaWxkKCkpIHsKLSAgICAgICAgaWYgKGxhc3RDaGls
ZC0+aXNUZXh0Tm9kZSgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogV2UncmUgb25seSBzdXBw
b3NlZCB0byBhcHBlbmQgdG8gdGhpcyB0ZXh0IG5vZGUgaWYgaXQKLSAgICAgICAgICAgIC8vIHdh
cyB0aGUgbGFzdCB0ZXh0IG5vZGUgaW5zZXJ0ZWQgYnkgdGhlIHBhcnNlci4KLSAgICAgICAgICAg
IENoYXJhY3RlckRhdGEqIHRleHROb2RlID0gc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGxh
c3RDaGlsZCk7Ci0gICAgICAgICAgICB0ZXh0Tm9kZS0+cGFyc2VyQXBwZW5kRGF0YShjaGFyYWN0
ZXJzKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIEF0dGFjaG1lbnRTaXRl
IHNpdGU7CisgICAgc2l0ZS5wYXJlbnQgPSBjdXJyZW50RWxlbWVudCgpOworICAgIHNpdGUubmV4
dENoaWxkID0gMDsKKyAgICBpZiAobV9yZWRpcmVjdEF0dGFjaFRvRm9zdGVyUGFyZW50KQorICAg
ICAgICBmaW5kRm9zdGVyU2l0ZShzaXRlKTsKKworICAgIE5vZGUqIHByZXZpb3VzQ2hpbGQgPSBz
aXRlLm5leHRDaGlsZCA/IHNpdGUubmV4dENoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA6IHNpdGUu
cGFyZW50LT5sYXN0Q2hpbGQoKTsKKyAgICBpZiAocHJldmlvdXNDaGlsZCAmJiBwcmV2aW91c0No
aWxkLT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlJ3JlIG9ubHkgc3VwcG9z
ZWQgdG8gYXBwZW5kIHRvIHRoaXMgdGV4dCBub2RlIGlmIGl0CisgICAgICAgIC8vIHdhcyB0aGUg
bGFzdCB0ZXh0IG5vZGUgaW5zZXJ0ZWQgYnkgdGhlIHBhcnNlci4KKyAgICAgICAgQ2hhcmFjdGVy
RGF0YSogdGV4dE5vZGUgPSBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4ocHJldmlvdXNDaGls
ZCk7CisgICAgICAgIHRleHROb2RlLT5wYXJzZXJBcHBlbmREYXRhKGNoYXJhY3RlcnMpOworICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGF0dGFjaChjdXJyZW50RWxlbWVudCgpLCBUZXh0Ojpj
cmVhdGUobV9kb2N1bWVudCwgY2hhcmFjdGVycykpOworCisgICAgYXR0YWNoQXRTaXRlKHNpdGUs
IFRleHQ6OmNyZWF0ZShtX2RvY3VtZW50LCBjaGFyYWN0ZXJzKSk7CiB9CiAKIFBhc3NSZWZQdHI8
RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQoQXRvbWljSFRNTFRv
a2VuJiB0b2tlbikKQEAgLTI4NiwyOCArMzA5LDMwIEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNp
dGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogICAgICAgICBtX29wZW5FbGVtZW50cy5wb3Ao
KTsKIH0KIAotdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Zm9zdGVyUGFyZW50KE5vZGUqIG5v
ZGUpCit2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShBdHRhY2htZW50
U2l0ZSYgc2l0ZSkKIHsKLSAgICBFbGVtZW50KiBmb3N0ZXJQYXJlbnRFbGVtZW50ID0gMDsKICAg
ICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBsYXN0VGFibGVFbGVtZW50UmVjb3Jk
ID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0YWJsZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgaWYg
KGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQpIHsKICAgICAgICAgRWxlbWVudCogbGFzdFRhYmxlRWxl
bWVudCA9IGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQtPmVsZW1lbnQoKTsKLSAgICAgICAgaWYgKGxh
c3RUYWJsZUVsZW1lbnQtPnBhcmVudCgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogV2UgbmVl
ZCBhbiBpbnNlcnRFbGVtZW50IHdoaWNoIGRvZXMgbm90IHNlbmQgbXV0YXRpb24gZXZlbnRzLgot
ICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgICAgICBsYXN0VGFibGVF
bGVtZW50LT5wYXJlbnQoKS0+aW5zZXJ0QmVmb3JlKG5vZGUsIGxhc3RUYWJsZUVsZW1lbnQsIGVj
KTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIGNhbGwgYXR0YWNoKCk/Ci0g
ICAgICAgICAgICBBU1NFUlQoIWVjKTsKKyAgICAgICAgaWYgKE5vZGUqIHBhcmVudCA9IGxhc3RU
YWJsZUVsZW1lbnQtPnBhcmVudCgpKSB7CisgICAgICAgICAgICBzaXRlLnBhcmVudCA9IHBhcmVu
dDsKKyAgICAgICAgICAgIHNpdGUubmV4dENoaWxkID0gbGFzdFRhYmxlRWxlbWVudDsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBmb3N0ZXJQYXJlbnRFbGVtZW50ID0g
bGFzdFRhYmxlRWxlbWVudFJlY29yZC0+bmV4dCgpLT5lbGVtZW50KCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgLy8gRnJhZ21lbnQgY2FzZQotICAgICAgICBmb3N0ZXJQYXJlbnRFbGVtZW50ID0g
bV9vcGVuRWxlbWVudHMuYm90dG9tKCk7IC8vIDxodG1sPiBlbGVtZW50CisgICAgICAgIHNpdGUu
cGFyZW50ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+bmV4dCgpLT5lbGVtZW50KCk7CisgICAg
ICAgIHNpdGUubmV4dENoaWxkID0gMDsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAvLyBG
cmFnbWVudCBjYXNlCisgICAgc2l0ZS5wYXJlbnQgPSBtX29wZW5FbGVtZW50cy5ib3R0b20oKTsg
Ly8gPGh0bWw+IGVsZW1lbnQKKyAgICBzaXRlLm5leHRDaGlsZCA9IDA7Cit9CiAKLSAgICBmb3N0
ZXJQYXJlbnRFbGVtZW50LT5wYXJzZXJBZGRDaGlsZChub2RlKTsKLSAgICAvLyBGSVhNRTogRG8g
d2UgbmVlZCB0byBjYWxsIGF0dGFjaCgpPwordm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Zm9z
dGVyUGFyZW50KE5vZGUqIG5vZGUpCit7CisgICAgQXR0YWNobWVudFNpdGUgc2l0ZTsKKyAgICBm
aW5kRm9zdGVyU2l0ZShzaXRlKTsKKyAgICBhdHRhY2hBdFNpdGUoc2l0ZSwgbm9kZSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggODgyZjFkMjcxNTc5NTI4Njkz
MjAxZjExZGNkMDlhYWRmMDFjN2E1YS4uMzdiMGU1NmM4YWM0MWQxODBhNDE2ZDIxNWNlNTg0MDQ2
MWViY2E4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKQEAgLTEwNywxNSArMTA3
LDI1IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlZGlyZWN0VG9Gb3N0
ZXJQYXJlbnRHdWFyZDsKIAorICAgIHN0cnVjdCBBdHRhY2htZW50U2l0ZSB7CisgICAgICAgIE5v
ZGUqIHBhcmVudDsKKyAgICAgICAgTm9kZSogbmV4dENoaWxkOworICAgIH07CisKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGlsZFR5cGU+Ci0gICAgUGFzc1JlZlB0cjxDaGlsZFR5cGU+IGF0dGFj
aChOb2RlKiBwYXJlbnQsIFBhc3NSZWZQdHI8Q2hpbGRUeXBlPiBwcnBDaGlsZCk7CisgICAgUGFz
c1JlZlB0cjxDaGlsZFR5cGU+IGF0dGFjaChOb2RlKiBwYXJlbnQsIFBhc3NSZWZQdHI8Q2hpbGRU
eXBlPiBjaGlsZCk7CisKKyAgICB2b2lkIGF0dGFjaEF0U2l0ZShjb25zdCBBdHRhY2htZW50U2l0
ZSYsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGQpOworICAgIHZvaWQgZmluZEZvc3RlclNpdGUoQXR0
YWNobWVudFNpdGUmKTsKIAogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudEFu
ZEF0dGFjaFRvQ3VycmVudChBdG9taWNIVE1MVG9rZW4mKTsKICAgICB2b2lkIG1lcmdlQXR0cmli
dXRlc0Zyb21Ub2tlbkludG9FbGVtZW50KEF0b21pY0hUTUxUb2tlbiYsIEVsZW1lbnQqKTsKIAog
ICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworCiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1faGVhZDsK
ICAgICBSZWZQdHI8RWxlbWVudD4gbV9mb3JtOworCiAgICAgbXV0YWJsZSBIVE1MRWxlbWVudFN0
YWNrIG1fb3BlbkVsZW1lbnRzOwogICAgIG11dGFibGUgSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlz
dCBtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsKICAgICBGcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb247Cg==
</data>
<flag name="review"
          id="48887"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>