<?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>165679</bug_id>
          
          <creation_ts>2016-12-09 13:36:13 -0800</creation_ts>
          <short_desc>Inline JSCell::toObject()</short_desc>
          <delta_ts>2016-12-09 15:37:35 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1258284</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-12-09 13:36:13 -0800</bug_when>
    <thetext>Inline JSCell::toObject() as it shows on some Speedometer profiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258287</commentid>
    <comment_count>1</comment_count>
      <attachid>296687</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-12-09 13:37:48 -0800</bug_when>
    <thetext>Created attachment 296687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258292</commentid>
    <comment_count>2</comment_count>
      <attachid>296687</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 13:41:06 -0800</bug_when>
    <thetext>Comment on attachment 296687
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSCellInlines.h:347
&gt; +inline JSObject* JSCell::toObject(ExecState* exec, JSGlobalObject* globalObject) const
&gt; +{
&gt; +    if (isString())
&gt; +        return static_cast&lt;const JSString*&gt;(this)-&gt;toObject(exec, globalObject);
&gt; +    if (isSymbol())
&gt; +        return static_cast&lt;const Symbol*&gt;(this)-&gt;toObject(exec, globalObject);
&gt; +    ASSERT(isObject());
&gt; +    return jsCast&lt;JSObject*&gt;(const_cast&lt;JSCell*&gt;(this));
&gt; +}

I think you might get an even better outcome if you made a toObjectSlowCase that covered string and symbol. That way, the inline path is just one branch on isObject, and then it produces an object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258301</commentid>
    <comment_count>3</comment_count>
      <attachid>296687</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-12-09 13:52:54 -0800</bug_when>
    <thetext>Comment on attachment 296687
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSCellInlines.h:347
&gt;&gt; +}
&gt; 
&gt; I think you might get an even better outcome if you made a toObjectSlowCase that covered string and symbol. That way, the inline path is just one branch on isObject, and then it produces an object.

Good point, let me do this instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258362</commentid>
    <comment_count>4</comment_count>
      <attachid>296704</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-12-09 14:46:45 -0800</bug_when>
    <thetext>Created attachment 296704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258375</commentid>
    <comment_count>5</comment_count>
      <attachid>296704</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 14:59:14 -0800</bug_when>
    <thetext>Comment on attachment 296704
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258414</commentid>
    <comment_count>6</comment_count>
      <attachid>296704</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-09 15:37:30 -0800</bug_when>
    <thetext>Comment on attachment 296704
Patch

Clearing flags on attachment: 296704

Committed r209636: &lt;http://trac.webkit.org/changeset/209636&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258415</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-09 15:37:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296687</attachid>
            <date>2016-12-09 13:37:48 -0800</date>
            <delta_ts>2016-12-09 14:46:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165679-20161209133705.patch</filename>
            <type>text/plain</type>
            <size>4723</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTQ2NTQ1YmYzMDQ0MDNiYjMxNTI4NmM4NmU3ZGY2Njg3ZTkyMDY1Li4wYTZkODMwOWUzMzM3MDQ0
NjZkMTI4MjQzYzlhOTgyMWNiZmNmM2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNi0xMi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIElubGluZSBKU0NlbGw6OnRvT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTY3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElubGluZSBKU0NlbGw6OnRvT2JqZWN0KCkgYXMg
aXQgc2hvd3Mgb24gU3BlZWRvbWV0ZXIgcHJvZmlsZXMuCisKKyAgICAgICAgKiBydW50aW1lL0pT
Q2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6dG9PYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNTdHJpbmcuaDoKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbC5oOgorCiAyMDE2LTEyLTA5ICBD
c2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBBUk0gYnVpbGRmaXggYWZ0ZXIgMjA5NTcwLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAKaW5kZXggOTkzMzI2Y2FhMzdiMTAzY2Y4MjliODc2ZDQ5YjRmNzk2ODczMmQ0
Ny4uOTFhYTk3NGYwNDJkZDJjYTFmNTY1NGJlMGFkMzQ0OTU5NjlmMTljZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0xNjksMTYgKzE2OSw2IEBAIGRvdWJs
ZSBKU0NlbGw6OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y29uc3QgSlNPYmplY3QqPih0aGlzKS0+dG9OdW1iZXIoZXhlYyk7CiB9CiAKLUpT
T2JqZWN0KiBKU0NlbGw6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkgY29uc3QKLXsKLSAgICBpZiAoaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IEpTU3RyaW5nKj4odGhpcyktPnRvT2JqZWN0KGV4ZWMsIGds
b2JhbE9iamVjdCk7Ci0gICAgaWYgKGlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBTeW1ib2wqPih0aGlzKS0+dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KTsK
LSAgICBBU1NFUlQoaXNPYmplY3QoKSk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+KGNv
bnN0X2Nhc3Q8SlNDZWxsKj4odGhpcykpOwotfQotCiB2b2lkIHNsb3dWYWxpZGF0ZUNlbGwoSlND
ZWxsKiBjZWxsKQogewogICAgIEFTU0VSVF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQoY2VsbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDMwOWZkNGRlOGI0NDBlNTgz
MzUxNWVjZWM5YTFkNjQ5MDcxYTk0ZjUuLjQ4OGVlNmMwMDYzMjcxZWJlMGEyMzczOTMwMWRhYzU0
NmNkNmQzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC0xNDQs
NyArMTQ0LDcgQEAgcHVibGljOgogICAgIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0
OwogICAgIFRyaVN0YXRlIHB1cmVUb0Jvb2xlYW4oKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29u
c3Q7CisgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kikg
Y29uc3Q7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgdm9pZCBkdW1wVG9TdHJlYW0oY29uc3QgSlNDZWxsKiwgUHJpbnRT
dHJlYW0mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMu
aAppbmRleCA2MTU0YjhiOGE0MWZhOGIxMWRlZDk1YjE0NzdhN2IwNzFjMTEzMmExLi42MjNlMzgx
ZGJmMWM3N2IyNDU0NDYzZjYyZjM0ZjYxMzFmNWIzMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0zMzYsNCArMzM2LDE0IEBAIGlubGlu
ZSBib29sIEpTQ2VsbDo6aXNMb2NrZWQoKSBjb25zdAogICAgIHJldHVybiBJbmRleGluZ1R5cGVM
b2NrQWxnb3JpdGhtOjppc0xvY2tlZCgqbG9jayk7CiB9CiAKK2lubGluZSBKU09iamVjdCogSlND
ZWxsOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBKU1N0cmluZyo+KHRoaXMpLT50b09iamVjdChleGVjLCBnbG9iYWxPYmplY3Qp
OworICAgIGlmIChpc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
U3ltYm9sKj4odGhpcyktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgQVNTRVJU
KGlzT2JqZWN0KCkpOworICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPihjb25zdF9jYXN0PEpT
Q2VsbCo+KHRoaXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCA5NWIwYjBkMGYyOGRkMTkyYTkwOTBhNTYwZDZj
NWZiNTZhNGEwM2IwLi4xZDUxYzM2OTNiMDM5YzY4OWM4Y2YzNTc3NDkxYzA0OWMwMDg0ZDFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTE2OSw3ICsxNjks
NyBAQCBwdWJsaWM6CiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJy
ZWRQcmltaXRpdmVUeXBlKSBjb25zdDsKICAgICBib29sIHRvQm9vbGVhbigpIGNvbnN0IHsgcmV0
dXJuICEhbGVuZ3RoKCk7IH0KICAgICBib29sIGdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUq
LCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYpIGNvbnN0OwotICAgIEpTT2JqZWN0KiB0b09iamVj
dChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklW
QVRFIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0
OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgIGJvb2wgZ2V0
U3RyaW5nUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IDc1MDNiYjg3NWMy
MTI5YTE2OGVjNGQyMDU5N2NlMTUzMjQ0NjlkYmIuLmJhZDE0ZjgwNTYwOTUzYjI4M2I5MDYyZjQ2
OGUzZDU1NjFmZDI1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBA
IC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0
YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3Q7CiAgICAgYm9vbCBnZXRQcmltaXRp
dmVOdW1iZXIoRXhlY1N0YXRlKiwgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmKSBjb25zdDsKLSAg
ICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29u
c3Q7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3ltYm9sSW1wbCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296704</attachid>
            <date>2016-12-09 14:46:45 -0800</date>
            <delta_ts>2016-12-09 15:37:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165679-20161209144603.patch</filename>
            <type>text/plain</type>
            <size>3582</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTQ2NTQ1YmYzMDQ0MDNiYjMxNTI4NmM4NmU3ZGY2Njg3ZTkyMDY1Li44ZWIyNTg1YTQ5MjRhMmMy
ZDEyY2ZjNDFiNTVjNmUwYjM0YzIzNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNi0xMi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIElubGluZSBKU0NlbGw6OnRvT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTY3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElubGluZSBKU0NlbGw6OnRvT2JqZWN0KCkgYXMg
aXQgc2hvd3Mgb24gU3BlZWRvbWV0ZXIgcHJvZmlsZXMuCisKKyAgICAgICAgKiBydW50aW1lL0pT
Q2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6dG9PYmplY3RTbG93KToKKyAgICAgICAg
KEpTQzo6SlNDZWxsOjp0b09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0Nl
bGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjp0b09iamVjdCk6CisKIDIwMTYtMTItMDkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIEFSTSBidWlsZGZpeCBhZnRlciAy
MDk1NzAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCA5OTMz
MjZjYWEzN2IxMDNjZjgyOWI4NzZkNDliNGY3OTY4NzMyZDQ3Li4wMDgyYzFmNzkxMGNkOTQ2OTdm
ZjEwZTY5YzQzYmYxOGM1MmJmMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAKQEAgLTE2OSwxNCArMTY5LDEzIEBAIGRvdWJsZSBKU0NlbGw6OnRvTnVtYmVyKEV4
ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNPYmpl
Y3QqPih0aGlzKS0+dG9OdW1iZXIoZXhlYyk7CiB9CiAKLUpTT2JqZWN0KiBKU0NlbGw6OnRvT2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
K0pTT2JqZWN0KiBKU0NlbGw6OnRvT2JqZWN0U2xvdyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFpc09iamVjdCgpKTsK
ICAgICBpZiAoaXNTdHJpbmcoKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEpT
U3RyaW5nKj4odGhpcyktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKGlz
U3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBTeW1ib2wqPih0aGlz
KS0+dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KTsKLSAgICBBU1NFUlQoaXNPYmplY3QoKSk7
Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+KGNvbnN0X2Nhc3Q8SlNDZWxsKj4odGhpcykp
OworICAgIEFTU0VSVChpc1N5bWJvbCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
U3ltYm9sKj4odGhpcyktPnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQg
c2xvd1ZhbGlkYXRlQ2VsbChKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCmluZGV4IDMwOWZkNGRlOGI0NDBlNTgzMzUxNWVjZWM5YTFkNjQ5MDcxYTk0ZjUu
LmVkMmE3MGQ2ODBkMjg5ZWU1NGQyYzliNjEwNzg0MGUzN2MwMDkwOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC0xNDQsNyArMTQ0LDcgQEAgcHVibGljOgogICAg
IGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFRyaVN0YXRlIHB1cmVUb0Jv
b2xlYW4oKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgdG9OdW1iZXIoRXhl
Y1N0YXRlKikgY29uc3Q7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIHRvT2JqZWN0
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgSlNPYmplY3QqIHRvT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBk
dW1wVG9TdHJlYW0oY29uc3QgSlNDZWxsKiwgUHJpbnRTdHJlYW0mKTsKQEAgLTI1MCw2ICsyNTAs
OCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNF
eHRyYWN0b3I7CiAKKyAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogdG9PYmplY3RTbG93
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisKICAgICBTdHJ1Y3R1cmVJRCBt
X3N0cnVjdHVyZUlEOwogICAgIEluZGV4aW5nVHlwZSBtX2luZGV4aW5nVHlwZUFuZE1pc2M7IC8v
IERPIE5PVCBzdG9yZSB0byB0aGlzIGZpZWxkLiBBbHdheXMgQ0FTLgogICAgIEpTVHlwZSBtX3R5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKaW5k
ZXggNjE1NGI4YjhhNDFmYThiMTFkZWQ5NWIxNDc3YTdiMDcxYzExMzJhMS4uN2Q0NTRhMWE4YTZi
NjdlNzAxYzgyODI3MTZjYTA2YTEzYTNmMjYzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaApAQCAtMzM2LDQgKzMzNiwxMSBAQCBpbmxpbmUgYm9v
bCBKU0NlbGw6OmlzTG9ja2VkKCkgY29uc3QKICAgICByZXR1cm4gSW5kZXhpbmdUeXBlTG9ja0Fs
Z29yaXRobTo6aXNMb2NrZWQoKmxvY2spOwogfQogCitpbmxpbmUgSlNPYmplY3QqIEpTQ2VsbDo6
dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAoreworICAgIGlmIChpc09iamVjdCgpKQorICAgICAgICByZXR1cm4ganNDYXN0PEpTT2Jq
ZWN0Kj4oY29uc3RfY2FzdDxKU0NlbGwqPih0aGlzKSk7CisgICAgcmV0dXJuIHRvT2JqZWN0U2xv
dyhleGVjLCBnbG9iYWxPYmplY3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
      

    </bug>

</bugzilla>