<?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>45270</bug_id>
          
          <creation_ts>2010-09-06 09:13:00 -0700</creation_ts>
          <short_desc>[v8] Inline hot methods for V8 to WebCore and back conversions</short_desc>
          <delta_ts>2010-09-06 10:47:17 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="anton muhin">antonm</reporter>
          <assigned_to name="anton muhin">antonm</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>274660</commentid>
    <comment_count>0</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-06 09:13:00 -0700</bug_when>
    <thetext>[v8] Inline hot methods for V8 to WebCore and back conversions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274665</commentid>
    <comment_count>1</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-06 09:15:39 -0700</bug_when>
    <thetext>This slightly increases the size of binary (&lt; 0.1% for chrome built on Ubuntu for 32-bit platform and ~0.1% of chrome.dll for release, but not official branding), but gives 3--5% of speed up on Windows and up to 8% on 32bit Ubuntu.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274666</commentid>
    <comment_count>2</comment_count>
      <attachid>66651</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-06 09:20:05 -0700</bug_when>
    <thetext>Created attachment 66651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274668</commentid>
    <comment_count>3</comment_count>
      <attachid>66651</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-06 09:34:41 -0700</bug_when>
    <thetext>Comment on attachment 66651
Patch

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

&gt; WebCore/ChangeLog:12
&gt; +        That slightly increases the size of binary (within 0.1% for both Ubuntu
&gt; +        and Windows, but those builds are slightly different from official ones),
&gt; +        but gives performance boost (3--5% on Windows, up to 8% on Ubuntu).
On which benchmark?  Just curious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274674</commentid>
    <comment_count>4</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-06 09:47:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 66651 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=66651&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/ChangeLog:12
&gt; &gt; +        That slightly increases the size of binary (within 0.1% for both Ubuntu
&gt; &gt; +        and Windows, but those builds are slightly different from official ones),
&gt; &gt; +        but gives performance boost (3--5% on Windows, up to 8% on Ubuntu).
&gt; On which benchmark?  Just curious.

Thanks a lot for a quick review on Labour Day, Adam.

I should have mentioned it explicitly, but the benchmark is Dromaeo DOM core.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274707</commentid>
    <comment_count>5</comment_count>
      <attachid>66651</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-06 10:47:12 -0700</bug_when>
    <thetext>Comment on attachment 66651
Patch

Clearing flags on attachment: 66651

Committed r66840: &lt;http://trac.webkit.org/changeset/66840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274708</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-06 10:47:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66651</attachid>
            <date>2010-09-06 09:20:05 -0700</date>
            <delta_ts>2010-09-06 10:47:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45270-20100906202003.patch</filename>
            <type>text/plain</type>
            <size>13700</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmM0MDI5ZjZjZGRkOGVmN2Q1NTBmNWFlNGM5MWJmNDM2ZmRiZjYyNy4uZDhkNDJhZjE4ZDMxMjYx
NmUxZGM1NmI4NjI3NTMyMjI1MmIyNDQ1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOS0wNiAgQW50
b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFt2OF0gSW5saW5lIGhvdCBtZXRob2RzIGZvciBWOCB0
byBXZWJDb3JlIGFuZCBiYWNrIGNvbnZlcnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTI3MAorCisgICAgICAgIElubGluZSBmYXN0IHBhdGhz
IG9mIGhvdCBmdW5jdGlvbnMgcGVyZm9ybWluZyBjb252ZXJzaW9ucyBmcm9tIFY4IHdyYXBwZXJz
CisgICAgICAgIHRvIFdlYkNvcmUgbmF0aXZlIG9iamVjdHMgYW5kIGJhY2suCisgICAgICAgIFRo
YXQgc2xpZ2h0bHkgaW5jcmVhc2VzIHRoZSBzaXplIG9mIGJpbmFyeSAod2l0aGluIDAuMSUgZm9y
IGJvdGggVWJ1bnR1CisgICAgICAgIGFuZCBXaW5kb3dzLCBidXQgdGhvc2UgYnVpbGRzIGFyZSBz
bGlnaHRseSBkaWZmZXJlbnQgZnJvbSBvZmZpY2lhbCBvbmVzKSwKKyAgICAgICAgYnV0IGdpdmVz
IHBlcmZvcm1hbmNlIGJvb3N0ICgzLS01JSBvbiBXaW5kb3dzLCB1cCB0byA4JSBvbiBVYnVudHUp
LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOERPTVdpbmRvd1NoZWxsOjppbml0Q29udGV4dElmTmVlZGVkKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6Z2V0V3JhcHBlclNs
b3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6VjhET01XcmFwcGVyOjpnZXRXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhTbG93KToKKwog
MjAxMC0wOS0wNiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUnVi
YmVyLXN0YW1wZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGE0NmM2N2MxNzRhNjNiYjcwYzBjMTRlZWE0MjZm
MzI2MzE4MmNmMGEuLjJkY2MxOTIzMDZlMTQzNjkzYzE0ZmM5MjVmMzIyMzdiOWNmZGRhNTEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjMzLDYg
KzIzMyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICRoZWFkZXJJbmNsdWRlc3siJHBvZFR5
cGUuaCJ9ID0gMSBpZiAkcG9kVHlwZSBhbmQgKCRwb2RUeXBlIG5lICJkb3VibGUiIGFuZCAkcG9k
VHlwZSBuZSAiZmxvYXQiIGFuZCAkcG9kVHlwZSBuZSAiUkdCQTMyIik7CiAgICAgJGhlYWRlcklu
Y2x1ZGVzeyJ3dGYvdGV4dC9TdHJpbmdIYXNoLmgifSA9IDE7CiAgICAgJGhlYWRlckluY2x1ZGVz
eyJXcmFwcGVyVHlwZUluZm8uaCJ9ID0gMTsKKyAgICAkaGVhZGVySW5jbHVkZXN7IlY4RE9NV3Jh
cHBlci5oIn0gPSAxOwogICAgIG15ICRoZWFkZXJDbGFzc0luY2x1ZGUgPSBHZXRIZWFkZXJDbGFz
c0luY2x1ZGUoJGltcGxDbGFzc05hbWUpOwogICAgICRoZWFkZXJJbmNsdWRlc3skaGVhZGVyQ2xh
c3NJbmNsdWRlfSA9IDEgaWYgJGhlYWRlckNsYXNzSW5jbHVkZSBuZSAiIjsKIApAQCAtMjUzLDE1
ICsyNTQsMjMgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKCRwb2RUeXBlKSB7CiAgICAg
ICAgICRuYXRpdmVUeXBlID0gIlY4U1ZHUE9EVHlwZVdyYXBwZXI8JHtuYXRpdmVUeXBlfSA+IjsK
ICAgICB9CisKKyAgICBteSAkZG9tTWFwRnVuY3Rpb24gPSBHZXREb21NYXBGdW5jdGlvbigkZGF0
YU5vZGUsICRpbnRlcmZhY2VOYW1lKTsKICAgICBteSAkZm9yY2VOZXdPYmplY3RQYXJhbWV0ZXIg
PSBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKSA/ICIsIGJvb2wgZm9yY2VOZXdPYmplY3Qg
PSBmYWxzZSIgOiAiIjsKKyAgICBteSAkZm9yY2VOZXdPYmplY3RJbnB1dCA9IElzRE9NTm9kZVR5
cGUoJGludGVyZmFjZU5hbWUpID8gIiwgYm9vbCBmb3JjZU5ld09iamVjdCIgOiAiIjsKKyAgICBt
eSAkZm9yY2VOZXdPYmplY3RDYWxsID0gSXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSkgPyAi
LCBmb3JjZU5ld09iamVjdCIgOiAiIjsKKwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5E
KTsKIAogcHVibGljOgogICAgIHN0YXRpYyBib29sIEhhc0luc3RhbmNlKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSk7CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBHZXRSYXdUZW1wbGF0ZSgpOwogICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gR2V0VGVtcGxhdGUoKTsKLSAgICBzdGF0aWMgJHtuYXRpdmVUeXBl
fSogdG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7Ci0gICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcCgke25hdGl2ZVR5cGV9KiR7Zm9yY2VOZXdPYmplY3RQYXJhbWV0
ZXJ9KTsKKyAgICBzdGF0aWMgJHtuYXRpdmVUeXBlfSogdG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBvYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDwk
e25hdGl2ZVR5cGV9Kj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01X
cmFwcGVyT2JqZWN0SW5kZXgpKTsKKyAgICB9CisgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXAoJHtuYXRpdmVUeXBlfSoke2ZvcmNlTmV3T2JqZWN0UGFyYW1ldGVy
fSk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKIEVORApAQCAtMzM2LDEzICszNDUsNzIgQEAgRU5ECiAgICAgfQog
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOworcHJpdmF0ZToKKyAgICBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdygke25hdGl2ZVR5cGV9Kik7CiB9OwogCitF
TkQKKworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKKwordjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiAke2NsYXNzTmFtZX06OndyYXAoJHtuYXRpdmVUeXBlfSogaW1wbCR7Zm9yY2VOZXdP
YmplY3RJbnB1dH0pCit7CitFTkQKKyAgICBpZiAoJGRvbU1hcEZ1bmN0aW9uKSB7CisgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgaWYgKCFmb3JjZU5ld09iamVjdCkge1xuIikgaWYg
SXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgICAgIG15ICRnZXRXcmFwcGVyID0g
SXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpID8gIlY4RE9NV3JhcHBlcjo6Z2V0V3JhcHBlcihpbXBs
KSIgOiAiJHtkb21NYXBGdW5jdGlvbn0uZ2V0KGltcGwpIjsKKyAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgPDxFTkQpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSAke2dldFdyYXBwZXJ9OworICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIHdyYXBwZXI7CitFTkQKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICB9XG4iKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKKyAgICB9CisgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOworICAgIHJldHVybiAke2NsYXNzTmFtZX06Ondy
YXBTbG93KGltcGwpOworfQorRU5ECisKKyAgICBpZiAoIUhhc0N1c3RvbVRvVjhJbXBsZW1lbnRh
dGlvbigkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCA8PEVORCk7CisKK2lubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOCgke25h
dGl2ZVR5cGV9KiBpbXBsJHtmb3JjZU5ld09iamVjdFBhcmFtZXRlcn0pCit7CisgICAgaWYgKCFp
bXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICByZXR1cm4gJHtjbGFzc05hbWV9
Ojp3cmFwKGltcGwke2ZvcmNlTmV3T2JqZWN0Q2FsbH0pOworfQorRU5ECisgICAgfSBlbHNpZiAo
JGludGVyZmFjZU5hbWUgbmUgJ05vZGUnKSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
IDw8RU5EKTsKKwogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoJHtuYXRpdmVUeXBlfSoke2Zv
cmNlTmV3T2JqZWN0UGFyYW1ldGVyfSk7CiBFTkQKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCA8PEVORCk7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4U2xv
dyhOb2RlKiwgYm9vbCk7CisKK2lubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChOb2Rl
KiBpbXBsLCBib29sIGZvcmNlTmV3T2JqZWN0ID0gZmFsc2UpCit7CisgICAgaWYgKCFpbXBsKQor
ICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBpZiAoIWZvcmNlTmV3T2JqZWN0KSB7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpnZXRX
cmFwcGVyKGltcGwpOworICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CisgICAgfQorICAgIHJldHVybiB0b1Y4U2xvdyhpbXBsLCBmb3Jj
ZU5ld09iamVjdCk7Cit9CitFTkQKKyAgICB9CisKICAgICBpZiAoSXNSZWZQdHJUeXBlKCRpbXBs
Q2xhc3NOYW1lKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7Ci12ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChQYXNzUmVmUHRyPCR7bmF0aXZlVHlwZX0gPiR7Zm9yY2VO
ZXdPYmplY3RQYXJhbWV0ZXJ9KTsKK2lubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChQ
YXNzUmVmUHRyPCAke25hdGl2ZVR5cGV9ID4gaW1wbCR7Zm9yY2VOZXdPYmplY3RQYXJhbWV0ZXJ9
KQoreworICAgIHJldHVybiB0b1Y4KGltcGwuZ2V0KCkke2ZvcmNlTmV3T2JqZWN0Q2FsbH0pOwor
fQogRU5ECiAgICAgfQogCkBAIC0yMDg2LDExICsyMTU0LDYgQEAgdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+ICR7Y2xhc3NOYW1lfTo6R2V0VGVtcGxhdGUoKVwKICAgICByZXR1
cm4gJHtjbGFzc05hbWV9Q2FjaGU7CiB9CiAKLSR7bmF0aXZlVHlwZX0qICR7Y2xhc3NOYW1lfTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCi17Ci0gICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8JHtuYXRpdmVUeXBlfSo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRl
cm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7Ci19Ci0KIGJvb2wgJHtjbGFzc05h
bWV9OjpIYXNJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiB7CiAgICAgcmV0
dXJuIEdldFJhd1RlbXBsYXRlKCktPkhhc0luc3RhbmNlKHZhbHVlKTsKQEAgLTIzNTksNyArMjQy
Miw3IEBAIHN1YiBHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzCiAKICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgPDxFTkQpOwogCi12ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3JhcCgk
e25hdGl2ZVR5cGV9KiBpbXBsJHtmb3JjZU5ld09iamVjdElucHV0fSkKK3Y4OjpIYW5kbGU8djg6
Ok9iamVjdD4gJHtjbGFzc05hbWV9Ojp3cmFwU2xvdygke25hdGl2ZVR5cGV9KiBpbXBsKQogewog
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKICAgICBWOFByb3h5KiBwcm94eSA9
IDA7CkBAIC0yMzY5LDI2ICsyNDMyLDE3IEBAIEVORAogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgPDxFTkQpOwogICAgIGlmIChpbXBsLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIHByb3h5ID0g
VjhQcm94eTo6cmV0cmlldmUoaW1wbC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSk7Ci0gICAgICAgIGlm
IChwcm94eSAmJiBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbC0+ZG9jdW1lbnQoKSkgPT0gc3RhdGlj
X2Nhc3Q8Tm9kZSo+KGltcGwpKQotICAgICAgICAgICAgcHJveHktPndpbmRvd1NoZWxsKCktPmlu
aXRDb250ZXh0SWZOZWVkZWQoKTsKKyAgICAgICAgaWYgKHByb3h5ICYmIHN0YXRpY19jYXN0PE5v
ZGUqPihpbXBsLT5kb2N1bWVudCgpKSA9PSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCkpIHsKKyAg
ICAgICAgICAgIGlmIChwcm94eS0+d2luZG93U2hlbGwoKS0+aW5pdENvbnRleHRJZk5lZWRlZCgp
KSB7CisgICAgICAgICAgICAgICAgLy8gaW5pdENvbnRleHRJZk5lZWRlZCBtYXkgaGF2ZSBjcmVh
dGVkIGEgd3JhcHBlciBmb3IgdGhlIG9iamVjdCwgcmV0cnkgZnJvbSB0aGUgc3RhcnQuCisgICAg
ICAgICAgICAgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6d3JhcChpbXBsKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogICAgIH0KIAogRU5ECiAgICAgfQogCi0gICAgaWYgKCRkb21NYXBGdW5j
dGlvbikgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWZvcmNlTmV3T2Jq
ZWN0KSB7XG4iKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKLSAgICAgICAgaWYg
KElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6OmdldFdyYXBwZXIoaW1wbCk7XG4i
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICB3cmFwcGVyID0gJHtkb21NYXBGdW5jdGlvbn0uZ2V0KGltcGwpO1xuIik7Ci0gICAgICAg
IH0KLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICAgICAgaWYgKCF3cmFw
cGVyLklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwotRU5ECi0gICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFj
ZU5hbWUpOwotICAgIH0KICAgICBpZiAoSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpKSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CiAKQEAgLTI0NDUsMjggKzI0OTksNiBAQCBF
TkQKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIEVORAotCi0gICAgaWYgKElzUmVmUHRyVHlwZSgk
aW50ZXJmYWNlTmFtZSkpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLQot
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjwke25hdGl2ZVR5cGV9ID4gaW1w
bCR7Zm9yY2VOZXdPYmplY3RJbnB1dH0pCi17Ci0gICAgcmV0dXJuIHRvVjgoaW1wbC5nZXQoKSR7
Zm9yY2VOZXdPYmplY3RDYWxsfSk7Ci19Ci1FTkQKLSAgICB9Ci0KLSAgICBpZiAoIUhhc0N1c3Rv
bVRvVjhJbXBsZW1lbnRhdGlvbigkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKSkgewotICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9W
OCgke25hdGl2ZVR5cGV9KiBpbXBsJHtmb3JjZU5ld09iamVjdElucHV0fSkKLXsKLSAgICBpZiAo
IWltcGwpCi0gICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiAke2NsYXNzTmFt
ZX06OndyYXAoaW1wbCR7Zm9yY2VOZXdPYmplY3RDYWxsfSk7Ci19Ci1FTkQKLSAgICB9CiB9CiAK
IHN1YiBIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRpb24gewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XaW5kb3dTaGVsbC5jcHAKaW5kZXggZDc0N2M3NTVlYjQyYzYwYmNlMzdlZjkzNGQyMmM0NzRm
MjUxYzAyZC4uMDc0OGNiNjMyNWQ5OTM2NTNiN2NhMzUzMzhlN2VmZWM4NzQ3ZmEzNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC0yNDIsMTEgKzI0MiwxMSBA
QCB2b2lkIFY4RE9NV2luZG93U2hlbGw6OmNsZWFyRm9yTmF2aWdhdGlvbigpCiAvLyB0aGUgZnJh
bWUuIEhvd2V2ZXIsIGEgbmV3IGlubmVyIHdpbmRvdyBpcyBjcmVhdGVkIGZvciB0aGUgbmV3IHBh
Z2UuCiAvLyBJZiB0aGVyZSBhcmUgSlMgY29kZSBob2xkcyBhIGNsb3N1cmUgdG8gdGhlIG9sZCBp
bm5lciB3aW5kb3csCiAvLyBpdCB3b24ndCBiZSBhYmxlIHRvIHJlYWNoIHRoZSBvdXRlciB3aW5k
b3cgdmlhIGl0cyBnbG9iYWwgb2JqZWN0Lgotdm9pZCBWOERPTVdpbmRvd1NoZWxsOjppbml0Q29u
dGV4dElmTmVlZGVkKCkKK2Jvb2wgVjhET01XaW5kb3dTaGVsbDo6aW5pdENvbnRleHRJZk5lZWRl
ZCgpCiB7CiAgICAgLy8gQmFpbCBvdXQgaWYgdGhlIGNvbnRleHQgaGFzIGFscmVhZHkgYmVlbiBp
bml0aWFsaXplZC4KICAgICBpZiAoIW1fY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gQ3JlYXRlIGEgaGFuZGxlIHNjb3Bl
IGZvciBhbGwgbG9jYWwgaGFuZGxlcy4KICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7
CkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBWOERPTVdpbmRvd1NoZWxsOjppbml0Q29udGV4dElm
TmVlZGVkKCkKIAogICAgIG1fY29udGV4dCA9IGNyZWF0ZU5ld0NvbnRleHQobV9nbG9iYWwsIDAp
OwogICAgIGlmIChtX2NvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm47CisgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0g
djg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KG1fY29udGV4dCk7CiAgICAgdjg6OkNvbnRleHQ6
OlNjb3BlIGNvbnRleHRTY29wZSh2OENvbnRleHQpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQg
VjhET01XaW5kb3dTaGVsbDo6aW5pdENvbnRleHRJZk5lZWRlZCgpCiAgICAgICAgIC8vIEJhaWwg
b3V0IGlmIGFsbG9jYXRpb24gb2YgdGhlIGZpcnN0IGdsb2JhbCBvYmplY3RzIGZhaWxzLgogICAg
ICAgICBpZiAobV9nbG9iYWwuSXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBkaXNwb3NlQ29udGV4
dEhhbmRsZXMoKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogI2lmbmRlZiBOREVCVUcKICAgICAgICAgVjhHQ0NvbnRyb2xsZXI6OnJl
Z2lzdGVyR2xvYmFsSGFuZGxlKFBST1hZLCB0aGlzLCBtX2dsb2JhbCk7CkBAIC0yOTMsMTIgKzI5
MywxMiBAQCB2b2lkIFY4RE9NV2luZG93U2hlbGw6OmluaXRDb250ZXh0SWZOZWVkZWQoKQogCiAg
ICAgaWYgKCFpbnN0YWxsSGlkZGVuT2JqZWN0UHJvdG90eXBlKHY4Q29udGV4dCkpIHsKICAgICAg
ICAgZGlzcG9zZUNvbnRleHRIYW5kbGVzKCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmICghaW5zdGFsbERPTVdpbmRvdyh2OENvbnRleHQs
IG1fZnJhbWUtPmRvbVdpbmRvdygpKSkgewogICAgICAgICBkaXNwb3NlQ29udGV4dEhhbmRsZXMo
KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAg
dXBkYXRlRG9jdW1lbnQoKTsKQEAgLTMxMCw2ICszMTAsOCBAQCB2b2lkIFY4RE9NV2luZG93U2hl
bGw6OmluaXRDb250ZXh0SWZOZWVkZWQoKQogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nLiBX
ZSBzaG91bGQgYWN0dWFsbHkgZG8gdGhpcyBmb3IgdGhlIHByb3BlciB3b3JsZCBvbmNlCiAgICAg
Ly8gd2UgZG8gaXNvbGF0ZWQgd29ybGRzIHRoZSBXZWJDb3JlIHdheS4KICAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+ZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoMCk7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+IFY4RE9NV2luZG93
U2hlbGw6OmNyZWF0ZU5ld0NvbnRleHQodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBnbG9iYWwsIGlu
dCBleHRlbnNpb25Hcm91cCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
aW5kb3dTaGVsbC5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmgKaW5k
ZXggNzk1OGJmMTBkYzQ1ZWYyYjUwZjQwN2QxZDEzYjAwZmI4MTdhNTAzNi4uNzZjMjdhZjM2MWU4
ZDdlOTViNzY5Mzk4ZWI1ODM2ZTA1MDVkZDRjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdpbmRvd1NoZWxsLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGV4
dCh2ODo6SGFuZGxlPHY4OjpDb250ZXh0Pik7CiAgICAgc3RhdGljIGJvb2wgaW5zdGFsbERPTVdp
bmRvdyh2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0LCBET01XaW5kb3cqKTsKIAotICAg
IHZvaWQgaW5pdENvbnRleHRJZk5lZWRlZCgpOworICAgIGJvb2wgaW5pdENvbnRleHRJZk5lZWRl
ZCgpOwogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnRXcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlcik7CiAKICAgICB2b2lkIGNsZWFyRm9yTmF2aWdhdGlvbigpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IDkyMWY5NTcxMDhjMzZhMTQ2YmI2NDFmYTgxMGNj
MDcwZTAzMTE2NjMuLjdkN2VmZTVkZmE1NWE5YWFmYTg1OTY0MWY1OTIxYWEwYTllYTU4MDYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTMyOSw5ICszMjksOCBAQCBib29s
IFY4RE9NV3JhcHBlcjo6aXNXcmFwcGVyT2ZUeXBlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSwgV3JhcHBlclR5cGVJbmZvKgogICAgIHJldHVybiB0eXBlSW5mbyA9PSB0eXBlOwogfQogCi12
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6Z2V0V3JhcHBlcihOb2RlKiBub2Rl
KQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6OmdldFdyYXBwZXJTbG93KE5v
ZGUqIG5vZGUpCiB7Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwogICAgIFY4SXNv
bGF0ZWRDb250ZXh0KiBjb250ZXh0ID0gVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKTsK
ICAgICBpZiAoTElLRUxZKCFjb250ZXh0KSkgewogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0Piogd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKQEAgLTMzOSw3ICszMzgsNiBAQCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6Z2V0V3JhcHBlcihOb2RlKiBub2Rl
KQogICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKICAgICAgICAg
cmV0dXJuICp3cmFwcGVyOwogICAgIH0KLQogICAgIERPTU5vZGVNYXBwaW5nJiBkb21Ob2RlTWFw
ID0gY29udGV4dC0+d29ybGQoKS0+ZG9tRGF0YVN0b3JlKCktPmRvbU5vZGVNYXAoKTsKICAgICBy
ZXR1cm4gZG9tTm9kZU1hcC5nZXQobm9kZSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
aAppbmRleCA5NDNjYjhhNTI3MjE1NDhmZGQyOTE1ZWZjNzNmMDVlZDVjMDgxZWYzLi5lZDAyNzQz
OWUyZWY4YWQxMzFlOWFkNmNiY2IzNzNlNzE5YjYzN2I2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJJc29sYXRlZFdvcmxkLmgiCiAjaW5jbHVkZSAiTm9k
ZS5oIgogI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgpAQCAtMTMwLDcgKzEzMSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3Rh
dGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkqIHBy
b3h5LCBXcmFwcGVyVHlwZUluZm8qLCB2b2lkKiBpbXBsKTsKIAotICAgICAgICBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBnZXRXcmFwcGVyKE5vZGUqKTsKKyAgICAgICAgc3RhdGljIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gZ2V0V3JhcHBlcihOb2RlKiBub2RlKQorICAgICAgICB7Cisg
ICAgICAgICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CisgICAgICAgICAgICBpZiAo
TElLRUxZKCFJc29sYXRlZFdvcmxkOjpjb3VudCgpKSkgeworICAgICAgICAgICAgICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3cmFwcGVyID0gbm9kZS0+d3JhcHBlcigpOworICAgICAg
ICAgICAgICAgIGlmICh3cmFwcGVyKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKndyYXBw
ZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZ2V0V3JhcHBlclNsb3cobm9k
ZSk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IGdldFdyYXBwZXJTbG93KE5vZGUqKTsKICAgICB9OwogCiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcAppbmRleCAxZjBjNzliMzNiNDFj
MWU4NmFhMzFiM2ViNTE4NGY1YmQ2NmJjYjQ0Li41MGI5ODk5ZDA4MDU3MWQzMmFlNDAyYjY0Mjgw
N2MyOGQwOWI0YzU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5v
ZGVDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3Rv
bS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjph
cHBlbmRDaGlsZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgcmV0dXJu
IHY4OjpOdWxsKCk7CiB9CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KE5vZGUqIGltcGws
IGJvb2wgZm9yY2VOZXdPYmplY3QpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOFNsb3coTm9k
ZSogaW1wbCwgYm9vbCBmb3JjZU5ld09iamVjdCkKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAg
IHJldHVybiB2ODo6TnVsbCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>