<?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>133739</bug_id>
          
          <creation_ts>2014-06-11 08:54:18 -0700</creation_ts>
          <short_desc>Some JSValue::get() micro-optimizations.</short_desc>
          <delta_ts>2014-06-11 12:07:27 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1014761</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-06-11 08:54:18 -0700</bug_when>
    <thetext>More hax to make GetByVal do less work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014762</commentid>
    <comment_count>1</comment_count>
      <attachid>232868</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-06-11 08:54:58 -0700</bug_when>
    <thetext>Created attachment 232868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014777</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-06-11 09:32:00 -0700</bug_when>
    <thetext>Also see https://bugs.webkit.org/show_bug.cgi?id=133727</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014818</commentid>
    <comment_count>3</comment_count>
      <attachid>232868</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-06-11 11:29:44 -0700</bug_when>
    <thetext>Comment on attachment 232868
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014826</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-06-11 11:40:47 -0700</bug_when>
    <thetext>Committed r169815: &lt;http://trac.webkit.org/changeset/169815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014827</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-06-11 11:43:20 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r169815: &lt;http://trac.webkit.org/changeset/169815&gt;

Could you be able to tell us how much improvement you saw on https://bug-133727-attachments.webkit.org/attachment.cgi?id=232853 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014838</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-06-11 12:07:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Committed r169815: &lt;http://trac.webkit.org/changeset/169815&gt;
&gt; 
&gt; Could you be able to tell us how much improvement you saw on https://bug-133727-attachments.webkit.org/attachment.cgi?id=232853 ?

Two samples:

55.15ms -&gt; 46.78ms
54.52ms -&gt; 46.64ms</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232868</attachid>
            <date>2014-06-11 08:54:58 -0700</date>
            <delta_ts>2014-06-11 11:29:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133739.diff</filename>
            <type>text/plain</type>
            <size>9342</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM2NmVmNTEuLjczYjUxNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA2LTExICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBTb21lIEpTVmFsdWU6OmdldCgpIG1pY3Jv
LW9wdGltemF0aW9ucy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzMzczOT4KKwor
ICAgICAgICBUaWdodGVuIHNvbWUgb2YgdGhlIHByb3BlcnR5IGxvb2t1cCBjb2RlIHRvIGltcHJv
dmUgcGVyZm9ybWFuY2Ugb2YgdGhlCisgICAgICAgIGVhZ2VybHkgcmVpZmllZCBwcm90b3R5cGUg
YXR0cmlidXRlczoKKworICAgICAgICAtIEluc3RlYWQgb2YgY29udmVydGluZyB0aGUgcHJvcGVy
dHkgbmFtZSB0byBhbiBpbnRlZ2VyIGF0IGV2ZXJ5IHN0ZXAKKyAgICAgICAgICBpbiB0aGUgcHJv
dG90eXBlIGNoYWluLCBtb3ZlIHRoYXQgdG8gYSBzZXBhcmF0ZSBwYXNzIGF0IHRoZSBlbmQKKyAg
ICAgICAgICBzaW5jZSBpdCBzaG91bGQgYmUgYSByYXJlIGNhc2UuCisKKyAgICAgICAgLSBDYWNo
ZSB0aGUgU3RydWN0dXJlSURUYWJsZSBpbiBhIGxvY2FsIGluc3RlYWQgb2YgZmV0Y2hpbmcgaXQg
ZnJvbQorICAgICAgICAgIHRoZSBIZWFwIG9uIGV2ZXJ5IHN0ZXAuCisKKyAgICAgICAgLSBNYWtl
IGZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QgaW5saW5lLiBJdCB3YXMgb3V0LW9mLWxpbmVk
IGJhc2VkCisgICAgICAgICAgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjbGllbnRzIHdvdWxkIG1v
c3RseSBiZSBjYWNoZWFibGUgR2V0QnlJZHMsCisgICAgICAgICAgYW5kIGl0IGdldHMgcHJldHR5
IGhvdCAofjElKSBpbiBHZXRCeVZhbC4KKworICAgICAgICAtIFBhc3MgdGhlIFN0cnVjdHVyZSBk
aXJlY3RseSB0byBmaWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90IGluc3RlYWQKKyAgICAgICAg
ICBvZiByZWZldGNoaW5nIGl0IGZyb20gdGhlIFN0cnVjdHVyZUlEVGFibGUuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNs
b3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpT
Qzo6SlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpT
T2JqZWN0OjpmaWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpmYXN0
R2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5
U2xvdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RTbG93KTog
RGVsZXRlZC4KKwogMjAxNC0wNi0wOSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgogCiAgICAgICAgIEdsb2JhbCBIYXNoVGFibGVzIGNvbnRhaW4gcmVmZXJlbmNlcyB0
byBhdG9taWMgU3RyaW5nSW1wbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcAppbmRleCBiZDAxMGU3Li4yYWE5YTY0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTE2OTAsMTUgKzE2OTAsNiBAQCBORVZFUl9JTkxJ
TkUgdm9pZCBKU09iamVjdDo6ZmlsbEdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNs
b3QsIEpTVmFsdWUgZwogICAgIHNsb3Quc2V0Q2FjaGVhYmxlR2V0dGVyU2xvdCh0aGlzLCBhdHRy
aWJ1dGVzLCBqc0Nhc3Q8R2V0dGVyU2V0dGVyKj4oZ2V0dGVyU2V0dGVyKSwgb2Zmc2V0KTsKIH0K
IAotTkVWRVJfSU5MSU5FIHZvaWQgSlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNs
b3QoUHJvcGVydHlTbG90JiBzbG90LCBKU1ZhbHVlIGN1c3RvbUdldHRlclNldHRlciwgdW5zaWdu
ZWQgYXR0cmlidXRlcykKLXsKLSAgICBpZiAoc3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKSB7
Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21H
ZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIpLT5nZXR0ZXIoKSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpcywgYXR0cmlidXRl
cywganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRlciktPmdldHRl
cigpKTsKLX0KLQogdm9pZCBKU09iamVjdDo6cHV0SW5kZXhlZERlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBTcGFyc2VBcnJheUVudHJ5KiBlbnRyeUluTWFwLCBjb25zdCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIFByb3BlcnR5RGVzY3JpcHRvciYgb2xkRGVzY3JpcHRvcikKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKaW5kZXggODBiY2ZiOC4uNDg1NGEwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2xhc3NJbmZv
LmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJDb3B5V3JpdGVC
YXJyaWVyLmgiCisjaW5jbHVkZSAiQ3VzdG9tR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiRGVm
ZXJHQy5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJIZWFwSW5saW5lcy5oIgpAQCAt
OTU3LDkgKzk1OCw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8UHV0TW9kZT4KICAgICBib29s
IHB1dERpcmVjdEludGVybmFsKFZNJiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBh
dHRyLCBQdXRQcm9wZXJ0eVNsb3QmLCBKU0NlbGwqKTsKIAotICAgIGJvb2wgaW5saW5lR2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFZNJiwgU3RydWN0dXJlJiwgUHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICBib29sIGlubGluZUdldE93blByb3BlcnR5U2xvdChWTSYsIFN0
cnVjdHVyZSYsIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBmaWxsR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYsIEpTVmFsdWUs
IHVuc2lnbmVkLCBQcm9wZXJ0eU9mZnNldCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBm
aWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYsIEpTVmFsdWUsIHVuc2ln
bmVkKTsKKyAgICB2b2lkIGZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90
JiwgSlNWYWx1ZSwgdW5zaWduZWQsIFN0cnVjdHVyZSYpOwogCiAgICAgY29uc3QgSGFzaFRhYmxl
VmFsdWUqIGZpbmRQcm9wZXJ0eUhhc2hFbnRyeShWTSYsIFByb3BlcnR5TmFtZSkgY29uc3Q7CiAg
ICAgICAgIApAQCAtOTcyLDggKzk3Myw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgZ2V0TmV3
VmVjdG9yTGVuZ3RoKHVuc2lnbmVkIGN1cnJlbnRWZWN0b3JMZW5ndGgsIHVuc2lnbmVkIGN1cnJl
bnRMZW5ndGgsIHVuc2lnbmVkIGRlc2lyZWRMZW5ndGgpOwogICAgIHVuc2lnbmVkIGdldE5ld1Zl
Y3Rvckxlbmd0aCh1bnNpZ25lZCBkZXNpcmVkTGVuZ3RoKTsKIAotICAgIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90U2xvdyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwot
ICAgICAgICAKICAgICBBcnJheVN0b3JhZ2UqIGNvbnN0cnVjdENvbnZlcnRlZEFycmF5U3RvcmFn
ZVdpdGhvdXRDb3B5aW5nRWxlbWVudHMoVk0mLCB1bnNpZ25lZCBuZWVkZWRMZW5ndGgpOwogICAg
ICAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEluZGV4UXVpY2tseVRvVW5kZWNp
ZGVkKFZNJiwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUpOwpAQCAtMTIxMiwzMSArMTIxMSwzMiBA
QCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6cHJvdG90eXBlKCkgY29uc3QKICAgICByZXR1cm4g
c3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZSgpOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wg
SlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2
bSwgU3RydWN0dXJlJiBzdHJ1Y3R1cmUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK0FMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6aW5saW5lR2V0T3du
UHJvcGVydHlTbG90KFZNJiB2bSwgU3RydWN0dXJlJiBzdHJ1Y3R1cmUsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICB1bnNpZ25lZCBhdHRyaWJ1
dGVzOwogICAgIEpTQ2VsbCogc3BlY2lmaWM7CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0g
c3RydWN0dXJlLmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpYyk7Ci0g
ICAgaWYgKExJS0VMWShpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpKSB7Ci0gICAgICAgIEpTVmFsdWUg
dmFsdWUgPSBnZXREaXJlY3Qob2Zmc2V0KTsKLSAgICAgICAgaWYgKHN0cnVjdHVyZS5oYXNHZXR0
ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgJiYgdmFsdWUuaXNHZXR0ZXJTZXR0ZXIoKSkKLSAgICAgICAg
ICAgIGZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3Qoc2xvdCwgdmFsdWUsIGF0dHJpYnV0ZXMsIG9mZnNl
dCk7Ci0gICAgICAgIGVsc2UgaWYgKHN0cnVjdHVyZS5oYXNDdXN0b21HZXR0ZXJTZXR0ZXJQcm9w
ZXJ0aWVzKCkgJiYgdmFsdWUuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSkKLSAgICAgICAgICAgIGZp
bGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3Qoc2xvdCwgdmFsdWUsIGF0dHJpYnV0ZXMpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXMsIGF0dHJpYnV0ZXMsIHZh
bHVlLCBvZmZzZXQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgaWYgKCFpc1Zh
bGlkT2Zmc2V0KG9mZnNldCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3RTbG93KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgSlNW
YWx1ZSB2YWx1ZSA9IGdldERpcmVjdChvZmZzZXQpOworICAgIGlmIChzdHJ1Y3R1cmUuaGFzR2V0
dGVyU2V0dGVyUHJvcGVydGllcygpICYmIHZhbHVlLmlzR2V0dGVyU2V0dGVyKCkpCisgICAgICAg
IGZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3Qoc2xvdCwgdmFsdWUsIGF0dHJpYnV0ZXMsIG9mZnNldCk7
CisgICAgZWxzZSBpZiAoc3RydWN0dXJlLmhhc0N1c3RvbUdldHRlclNldHRlclByb3BlcnRpZXMo
KSAmJiB2YWx1ZS5pc0N1c3RvbUdldHRlclNldHRlcigpKQorICAgICAgICBmaWxsQ3VzdG9tR2V0
dGVyUHJvcGVydHlTbG90KHNsb3QsIHZhbHVlLCBhdHRyaWJ1dGVzLCBzdHJ1Y3R1cmUpOworICAg
IGVsc2UKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzLCBhdHRyaWJ1dGVzLCB2YWx1ZSwgb2Zm
c2V0KTsKKworICAgIHJldHVybiB0cnVlOwogfQogCi1pbmxpbmUgYm9vbCBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90U2xvdyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK0FMV0FZU19JTkxJTkUgdm9pZCBKU09iamVjdDo6
ZmlsbEN1c3RvbUdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3QsIEpTVmFsdWUg
Y3VzdG9tR2V0dGVyU2V0dGVyLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBTdHJ1Y3R1cmUmIHN0cnVj
dHVyZSkKIHsKLSAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKLSAgICBp
ZiAoaSAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCi0gICAgICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KHRoaXMsIGV4ZWMsIGksIHNsb3QpOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoc3RydWN0dXJlLmlzRGljdGlvbmFyeSgpKSB7CisgICAgICAgIHNsb3Quc2V0
Q3VzdG9tKHRoaXMsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0
b21HZXR0ZXJTZXR0ZXIpLT5nZXR0ZXIoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
c2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpcywgYXR0cmlidXRlcywganNDYXN0PEN1c3RvbUdl
dHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRlciktPmdldHRlcigpKTsKIH0KIAogLy8gSXQg
bWF5IHNlZW0gY3JhenkgdG8gaW5saW5lIGEgZnVuY3Rpb24gdGhpcyBsYXJnZSwgZXNwZWNpYWxs
eSBhIHZpcnR1YWwgZnVuY3Rpb24sCkBAIC0xMjQ2LDEzICsxMjQ2LDE4IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBTdHJ1Y3R1cmUm
IHN0cnVjdHVyZSA9ICpvYmplY3QtPnN0cnVjdHVyZSh2bSk7Ci0gICAgcmV0dXJuIG9iamVjdC0+
aW5saW5lR2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgaWYgKG9iamVjdC0+aW5saW5lR2V0T3duUHJvcGVydHlTbG90KHZtLCBz
dHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXgg
IT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQorICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleChvYmplY3QsIGV4ZWMsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gZmFs
c2U7CiB9CiAKIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6ZmFzdEdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgU3RydWN0dXJlJiBzdHJ1Y3R1cmUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoIVR5
cGVJbmZvOjpvdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoaW5saW5lVHlwZUZsYWdzKCkpKQot
ICAgICAgICByZXR1cm4gYXNPYmplY3QodGhpcyktPmlubGluZUdldE93blByb3BlcnR5U2xvdChl
eGVjLCB2bSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICByZXR1cm4g
YXNPYmplY3QodGhpcyktPmlubGluZUdldE93blByb3BlcnR5U2xvdCh2bSwgc3RydWN0dXJlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIHJldHVybiBzdHJ1Y3R1cmUuY2xhc3NJbmZvKCktPm1l
dGhvZFRhYmxlLmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCkBAIC0xMjYxLDI0ICsxMjY2LDMxIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09i
amVjdDo6ZmFzdEdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgU3Ry
CiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8mIHN0cnVjdHVyZUlEVGFibGUgPSB2
bS5oZWFwLnN0cnVjdHVyZUlEVGFibGUoKTsKICAgICBKU09iamVjdCogb2JqZWN0ID0gdGhpczsK
ICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSA9ICpvYmpl
Y3QtPnN0cnVjdHVyZSh2bSk7CisgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKnN0cnVj
dHVyZUlEVGFibGUuZ2V0KG9iamVjdC0+c3RydWN0dXJlSUQoKSk7CiAgICAgICAgIGlmIChvYmpl
Y3QtPmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgdm0sIHN0cnVjdHVyZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBKU1ZhbHVlIHBy
b3RvdHlwZSA9IHN0cnVjdHVyZS5zdG9yZWRQcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFwcm90
b3R5cGUuaXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBvYmplY3QgPSBhc09iamVjdChwcm90b3R5cGUpOwogICAgIH0KKwor
ICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5k
ZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQorICAgICAgICByZXR1cm4gZ2V0UHJvcGVy
dHlTbG90KGV4ZWMsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIEFMV0FZ
U19JTkxJTkUgYm9vbCBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvJiBzdHJ1Y3R1cmVJRFRhYmxlID0gdm0uaGVhcC5zdHJ1
Y3R1cmVJRFRhYmxlKCk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXM7CiAgICAgd2hpbGUg
KHRydWUpIHsKLSAgICAgICAgU3RydWN0dXJlJiBzdHJ1Y3R1cmUgPSAqb2JqZWN0LT5zdHJ1Y3R1
cmUodm0pOworICAgICAgICBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSA9ICpzdHJ1Y3R1cmVJRFRhYmxl
LmdldChvYmplY3QtPnN0cnVjdHVyZUlEKCkpOwogICAgICAgICBpZiAoc3RydWN0dXJlLmNsYXNz
SW5mbygpLT5tZXRob2RUYWJsZS5nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBKU1ZhbHVlIHByb3RvdHlwZSA9IHN0cnVjdHVyZS5zdG9yZWRQcm90b3R5cGUoKTsK
</data>
<flag name="review"
          id="257362"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>