<?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>80217</bug_id>
          
          <creation_ts>2012-03-03 17:39:53 -0800</creation_ts>
          <short_desc>Split JSArray&apos;s [[Put]] &amp; [[DefineOwnProperty]] traps.</short_desc>
          <delta_ts>2012-03-03 21:56:46 -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>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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>570190</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-03 17:39:53 -0800</bug_when>
    <thetext>putByIndex() provides similar behavior to put(), but for indexed property names.  Many places in ArrayPrototype call putByIndex() where they really mean to call [[DefineOwnProperty]].  This is only okay due to a bug – putByIndex should be calling numeric accessors (&amp; respecting numeric read only properties) on the prototype chain, but isn&apos;t.  Add a new putDirectIndex (matching JSObject&apos;s putDirect* methods), to correctly provide a fast [[DefineOwnProperty]] interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570191</commentid>
    <comment_count>1</comment_count>
      <attachid>130012</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-03 17:42:26 -0800</bug_when>
    <thetext>Created attachment 130012
Fix

No new tests – this does not yet change behavior (errors were not reachable, since ArrayPrototype is always creating new properties).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570192</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-03 17:45:26 -0800</bug_when>
    <thetext>Attachment 130012 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/runtime/JSArray.h:168:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/JavaScriptCore/runtime/JSArray.h:298:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/runtime/JSArray.h:298:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570213</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-03 21:56:46 -0800</bug_when>
    <thetext>Fixed in r109673</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130012</attachid>
            <date>2012-03-03 17:42:26 -0800</date>
            <delta_ts>2012-03-03 18:23:41 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>80217.patch</filename>
            <type>text/plain</type>
            <size>13400</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5NjY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDEyLTAzLTAzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBTcGxpdCBKU0FycmF5J3MgW1tQdXRdXSAmIFtbRGVmaW5lT3duUHJvcGVydHld
XSB0cmFwcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgwMjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
cHV0QnlJbmRleCgpIHByb3ZpZGVzIHNpbWlsYXIgYmVoYXZpb3IgdG8gcHV0KCksIGJ1dCBmb3Ig
aW5kZXhlZCBwcm9wZXJ0eSBuYW1lcy4KKyAgICAgICAgTWFueSBwbGFjZXMgaW4gQXJyYXlQcm90
b3R5cGUgY2FsbCBwdXRCeUluZGV4KCkgd2hlcmUgdGhleSByZWFsbHkgbWVhbiB0byBjYWxsCisg
ICAgICAgIFtbRGVmaW5lT3duUHJvcGVydHldXS4gVGhpcyBpcyBvbmx5IG9rYXkgZHVlIHRvIGEg
YnVnIOKAkyBwdXRCeUluZGV4IHNob3VsZCBiZQorICAgICAgICBjYWxsaW5nIG51bWVyaWMgYWNj
ZXNzb3JzICgmIHJlc3BlY3RpbmcgbnVtZXJpYyByZWFkIG9ubHkgcHJvcGVydGllcykgb24gdGhl
CisgICAgICAgIHByb3RvdHlwZSBjaGFpbiwgYnV0IGlzbid0LiBBZGQgYSBuZXcgcHV0RGlyZWN0
SW5kZXggKG1hdGNoaW5nIEpTT2JqZWN0J3MKKyAgICAgICAgcHV0RGlyZWN0KiBtZXRob2RzKSwg
dG8gY29ycmVjdGx5IHByb3ZpZGUgYSBmYXN0IFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcmZh
Y2UuCisKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNDb25jYXQpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1Ns
aWNlKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNGaWx0ZXIpOgorICAgICAgICAoSlND
OjphcnJheVByb3RvRnVuY01hcCk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAg
ICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OnJlamVjdCk6CisgICAgICAgIChKU0M6OlNwYXJz
ZUFycmF5VmFsdWVNYXA6OnB1dERpcmVjdCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmRlZmlu
ZU93bk51bWVyaWNQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1dEJ5SW5kZXhC
ZXlvbmRWZWN0b3JMZW5ndGgpOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXREaXJlY3RJbmRl
eEJleW9uZFZlY3Rvckxlbmd0aCk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAg
ICAgIChTcGFyc2VBcnJheVZhbHVlTWFwKToKKyAgICAgICAgKEpTQXJyYXkpOgorICAgICAgICAo
SlNDOjpKU0FycmF5OjpwdXREaXJlY3RJbmRleCk6CisKIDIwMTItMDMtMDMgIEhhbnMgV2VubmJv
cmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgU3BlZWNoIEphdmFT
Y3JpcHQgQVBJCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxMDk2NDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2OCwxMSAr
MzY4LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKICAgICAg
ICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAg
aWYgKHYpCi0gICAgICAgICAgICAgICAgICAgIGFyci0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChhcnIsIGV4ZWMsIG4sIHYpOworICAgICAgICAgICAgICAgICAgICBhcnItPnB1dERpcmVjdElu
ZGV4KGV4ZWMsIG4sIHYpOwogICAgICAgICAgICAgICAgIG4rKzsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFyci0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChhcnIsIGV4ZWMsIG4sIGN1ckFyZyk7CisgICAgICAgICAgICBhcnItPnB1dERpcmVjdEluZGV4
KGV4ZWMsIG4sIGN1ckFyZyk7CiAgICAgICAgICAgICBuKys7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGkgPT0gYXJnQ291bnQpCkBAIC01MjEsNyArNTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRgogICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICBpZiAodikKLSAgICAgICAgICAgIHJlc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChyZXNPYmosIGV4ZWMsIG4sIHYpOworICAgICAgICAgICAgcmVzT2JqLT5wdXREaXJlY3RJbmRl
eChleGVjLCBuLCB2KTsKICAgICB9CiAgICAgcmVzT2JqLT5zZXRMZW5ndGgoZXhlYywgbik7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNzMyLDcgKzczMiw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWNoZWRDYWxsLmNhbGwoKTsKICAgICAgICAgICAg
IGlmIChyZXN1bHQudG9Cb29sZWFuKGV4ZWMpKQotICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5
LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBmaWx0ZXJJbmRl
eCsrLCB2KTsKKyAgICAgICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhl
YywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGsgPT0gbGVuZ3Ro
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CkBAIC03
NTMsNyArNzUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgog
CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUs
IGNhbGxEYXRhLCBhcHBseVRoaXMsIGVhY2hBcmd1bWVudHMpOwogICAgICAgICBpZiAocmVzdWx0
LnRvQm9vbGVhbihleGVjKSkKLSAgICAgICAgICAgIHJlc3VsdEFycmF5LT5tZXRob2RUYWJsZSgp
LT5wdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAg
ICAgICAgIHJlc3VsdEFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBmaWx0ZXJJbmRleCsrLCB2
KTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CiB9CkBA
IC03ODgsNyArNzg4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RgogICAgICAgICAgICAgY2FjaGVkQ2FsbC5zZXRBcmd1bWVudCgxLCBqc051bWJlcihrKSk7CiAg
ICAgICAgICAgICBjYWNoZWRDYWxsLnNldEFyZ3VtZW50KDIsIHRoaXNPYmopOwogCi0gICAgICAg
ICAgICBKU0FycmF5OjpwdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBrLCBjYWNoZWRDYWxs
LmNhbGwoKSk7CisgICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywg
aywgY2FjaGVkQ2FsbC5jYWxsKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIGZvciAoOyBrIDwg
bGVuZ3RoICYmICFleGVjLT5oYWRFeGNlcHRpb24oKTsgKytrKSB7CkBAIC04MDksNyArODA5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgYXBwbHlU
aGlzLCBlYWNoQXJndW1lbnRzKTsKLSAgICAgICAgcmVzdWx0QXJyYXktPm1ldGhvZFRhYmxlKCkt
PnB1dEJ5SW5kZXgocmVzdWx0QXJyYXksIGV4ZWMsIGssIHJlc3VsdCk7CisgICAgICAgIHJlc3Vs
dEFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBrLCByZXN1bHQpOwogICAgIH0KIAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0QXJyYXkpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAJKHJldmlzaW9uIDEwOTY0MykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2
ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBKU0MgewogCisKIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNBcnJheSk7CiBBU1NFUlRfSEFTX1RSSVZJQUxfREVT
VFJVQ1RPUihKU0FycmF5KTsKIApAQCAtMTA5LDYgKzExMCwxMyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgaXNEZW5zZUVub3VnaEZvclZlY3RvCiAgICAgcmV0dXJuIGxlbmd0aCA8PSBNSU5fU1BBUlNF
X0FSUkFZX0lOREVYIHx8IGxlbmd0aCAvIG1pbkRlbnNpdHlNdWx0aXBsaWVyIDw9IG51bVZhbHVl
czsKIH0KIAorc3RhdGljIGJvb2wgcmVqZWN0KEV4ZWNTdGF0ZSogZXhlYywgYm9vbCB0aHJvd0V4
Y2VwdGlvbiwgY29uc3QgY2hhciogbWVzc2FnZSkKK3sKKyAgICBpZiAodGhyb3dFeGNlcHRpb24p
CisgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIG1lc3NhZ2UpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogI2lmICFDSEVDS19BUlJBWV9DT05TSVNURU5DWQogCiBpbmxpbmUgdm9pZCBKU0Fy
cmF5OjpjaGVja0NvbnNpc3RlbmN5KENvbnNpc3RlbmN5Q2hlY2tUeXBlKQpAQCAtMjQxLDYgKzI0
OSwyNCBAQCBpbmxpbmUgdm9pZCBTcGFyc2VBcnJheVZhbHVlTWFwOjpwdXQoRXhlCiAgICAgY2Fs
bChleGVjLCBzZXR0ZXIsIGNhbGxUeXBlLCBjYWxsRGF0YSwgYXJyYXksIGFyZ3MpOwogfQogCitp
bmxpbmUgYm9vbCBTcGFyc2VBcnJheVZhbHVlTWFwOjpwdXREaXJlY3QoRXhlY1N0YXRlKiBleGVj
LCBKU0FycmF5KiBhcnJheSwgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRU
aHJvdykKK3sKKyAgICBzdGQ6OnBhaXI8U3BhcnNlQXJyYXlWYWx1ZU1hcDo6aXRlcmF0b3IsIGJv
b2w+IHJlc3VsdCA9IGFkZChhcnJheSwgaSk7CisgICAgU3BhcnNlQXJyYXlFbnRyeSYgZW50cnkg
PSByZXN1bHQuZmlyc3QtPnNlY29uZDsKKworICAgIC8vIFRvIHNhdmUgYSBzZXBhcmF0ZSBmaW5k
ICYgYWRkLCB3ZSBmaXJzdCBhbHdheXMgYWRkIHRvIHRoZSBzcGFyc2UgbWFwLgorICAgIC8vIElu
IHRoZSB1bmNvbW1vbiBjYXNlIHRoYXQgdGhpcyBpcyBhIG5ldyBwcm9wZXJ0eSwgYW5kIHRoZSBh
cnJheSBpcyBub3QKKyAgICAvLyBleHRlbnNpYmxlLCB0aGlzIGlzIG5vdCB0aGUgcmlnaHQgdGhp
bmcgdG8gaGF2ZSBkb25lIC0gc28gcmVtb3ZlIGFnYWluLgorICAgIGlmIChyZXN1bHQuc2Vjb25k
ICYmICFhcnJheS0+aXNFeHRlbnNpYmxlKCkpIHsKKyAgICAgICAgcmVtb3ZlKHJlc3VsdC5maXJz
dCk7CisgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2hvdWxkVGhyb3csICJBdHRlbXB0aW5n
IHRvIGRlZmluZSBwcm9wZXJ0eSBvbiBvYmplY3QgdGhhdCBpcyBub3QgZXh0ZW5zaWJsZS4iKTsK
KyAgICB9CisKKyAgICBlbnRyeS5hdHRyaWJ1dGVzID0gMDsKKyAgICBlbnRyeS5zZXQoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBhcnJheSwgdmFsdWUpOworICAgIHJldHVybiB0cnVlOworfQorCiBpbmxp
bmUgdm9pZCBTcGFyc2VBcnJheUVudHJ5OjpnZXQoUHJvcGVydHlTbG90JiBzbG90KSBjb25zdAog
ewogICAgIEpTVmFsdWUgdmFsdWUgPSBCYXNlOjpnZXQoKTsKQEAgLTM4MSwxMyArNDA3LDYgQEAg
dm9pZCBKU0FycmF5OjpwdXREZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZQogICAgIGVudHJ5SW5NYXAt
PmF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChvbGRE
ZXNjcmlwdG9yKTsKIH0KIAotc3RhdGljIGJvb2wgcmVqZWN0KEV4ZWNTdGF0ZSogZXhlYywgYm9v
bCB0aHJvd0V4Y2VwdGlvbiwgY29uc3QgY2hhciogbWVzc2FnZSkKLXsKLSAgICBpZiAodGhyb3dF
eGNlcHRpb24pCi0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIG1lc3NhZ2UpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogLy8gRGVmaW5lZCBpbiBFUzUuMSA4LjEyLjkKIGJvb2wgSlNBcnJh
eTo6ZGVmaW5lT3duTnVtZXJpY1Byb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5k
ZXgsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCB0aHJvd0V4Y2VwdGlvbikK
IHsKQEAgLTQwMCw4ICs0MTksNyBAQCBib29sIEpTQXJyYXk6OmRlZmluZU93bk51bWVyaWNQcm9w
ZXJ0eShFCiAgICAgICAgIC8vIHN0YXRlIChpLmUuIGRlZmluZU93blByb3BlcnR5IGNvdWxkIGJl
IHVzZWQgdG8gc2V0IGEgdmFsdWUgd2l0aG91dCBuZWVkaW5nIHRvIGVudGVyaW5nICdTcGFyc2VN
b2RlJykuCiAgICAgICAgIGlmICghZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkpIHsKICAgICAgICAg
ICAgIEFTU0VSVCghZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKTsKLSAgICAgICAg
ICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaW5kZXgsIGRlc2NyaXB0b3IudmFsdWUoKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBwdXREaXJlY3RJbmRl
eChleGVjLCBpbmRleCwgZGVzY3JpcHRvci52YWx1ZSgpLCB0aHJvd0V4Y2VwdGlvbik7CiAgICAg
ICAgIH0KIAogICAgICAgICBlbnRlckRpY3Rpb25hcnlNb2RlKGV4ZWMtPmdsb2JhbERhdGEoKSk7
CkBAIC03NjEsNyArNzc5LDcgQEAgdm9pZCBKU0FycmF5OjpwdXRCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRQogICAgIHRoaXNPYmplY3QtPmNoZWNrQ29uc2lzdGVuY3koKTsKIH0KIAotTkVWRVJfSU5M
SU5FIHZvaWQgSlNBcnJheTo6cHV0QnlJbmRleEJleW9uZFZlY3Rvckxlbmd0aChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCit2b2lkIEpTQXJyYXk6OnB1dEJ5SW5k
ZXhCZXlvbmRWZWN0b3JMZW5ndGgoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERh
dGEoKTsKIApAQCAtODM0LDYgKzg1Miw3NyBAQCBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5Ojpw
dXRCeUluZGV4QmV5CiAgICAgdmFsdWVTbG90LnNldChnbG9iYWxEYXRhLCB0aGlzLCB2YWx1ZSk7
CiB9CiAKK2Jvb2wgSlNBcnJheTo6cHV0RGlyZWN0SW5kZXhCZXlvbmRWZWN0b3JMZW5ndGgoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93
KQoreworICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERhdGEoKTsK
KworICAgIC8vIGkgc2hvdWxkIGJlIGEgdmFsaWQgYXJyYXkgaW5kZXggdGhhdCBpcyBvdXRzaWRl
IG9mIHRoZSBjdXJyZW50IHZlY3Rvci4KKyAgICBBU1NFUlQoaSA+PSBtX3ZlY3Rvckxlbmd0aCk7
CisgICAgQVNTRVJUKGkgPD0gTUFYX0FSUkFZX0lOREVYKTsKKworICAgIEFycmF5U3RvcmFnZSog
c3RvcmFnZSA9IG1fc3RvcmFnZTsKKyAgICBTcGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBtX3Nw
YXJzZVZhbHVlTWFwOworCisgICAgLy8gRmlyc3QsIGhhbmRsZSBjYXNlcyB3aGVyZSB3ZSBkb24n
dCBjdXJyZW50bHkgaGF2ZSBhIHNwYXJzZSBtYXAuCisgICAgaWYgKExJS0VMWSghbWFwKSkgewor
ICAgICAgICAvLyBJZiB0aGUgYXJyYXkgaXMgbm90IGV4dGVuc2libGUsIHdlIHNob3VsZCBoYXZl
IGVudGVyZWQgZGljdGlvbmFyeSBtb2RlLCBhbmQgY3JlYXRlZCB0aGUgc3BhcmUgbWFwLgorICAg
ICAgICBBU1NFUlQoaXNFeHRlbnNpYmxlKCkpOworICAgIAorICAgICAgICAvLyBVcGRhdGUgbV9s
ZW5ndGggaWYgbmVjZXNzYXJ5LgorICAgICAgICBpZiAoaSA+PSBzdG9yYWdlLT5tX2xlbmd0aCkK
KyAgICAgICAgICAgIHN0b3JhZ2UtPm1fbGVuZ3RoID0gaSArIDE7CisKKyAgICAgICAgLy8gQ2hl
Y2sgdGhhdCBpdCBpcyBzZW5zaWJsZSB0byBzdGlsbCBiZSB1c2luZyBhIHZlY3RvciwgYW5kIHRo
ZW4gdHJ5IHRvIGdyb3cgdGhlIHZlY3Rvci4KKyAgICAgICAgaWYgKExJS0VMWSgoaXNEZW5zZUVu
b3VnaEZvclZlY3RvcihpLCBzdG9yYWdlLT5tX251bVZhbHVlc0luVmVjdG9yKSkgJiYgaW5jcmVh
c2VWZWN0b3JMZW5ndGgoZ2xvYmFsRGF0YSwgaSArIDEpKSkgeworICAgICAgICAgICAgLy8gc3Vj
Y2VzcyEgLSByZXJlYWQgbV9zdG9yYWdlIHNpbmNlIGl0IGhhcyBsaWtlbHkgYmVlbiByZWFsbG9j
YXRlZCwgYW5kIHN0b3JlIHRvIHRoZSB2ZWN0b3IuCisgICAgICAgICAgICBzdG9yYWdlID0gbV9z
dG9yYWdlOworICAgICAgICAgICAgc3RvcmFnZS0+bV92ZWN0b3JbaV0uc2V0KGdsb2JhbERhdGEs
IHRoaXMsIHZhbHVlKTsKKyAgICAgICAgICAgICsrc3RvcmFnZS0+bV9udW1WYWx1ZXNJblZlY3Rv
cjsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIFdlIGRv
bid0IHdhbnQgdG8sIG9yIGNhbid0IHVzZSBhIHZlY3RvciB0byBob2xkIHRoaXMgcHJvcGVydHkg
LSBhbGxvY2F0ZSBhIHNwYXJzZSBtYXAgJiBhZGQgdGhlIHZhbHVlLgorICAgICAgICBhbGxvY2F0
ZVNwYXJzZU1hcChleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICBtYXAgPSBtX3NwYXJzZVZh
bHVlTWFwOworICAgICAgICByZXR1cm4gbWFwLT5wdXREaXJlY3QoZXhlYywgdGhpcywgaSwgdmFs
dWUsIHNob3VsZFRocm93KTsKKyAgICB9CisKKyAgICAvLyBVcGRhdGUgbV9sZW5ndGggaWYgbmVj
ZXNzYXJ5LgorICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0b3JhZ2UtPm1fbGVuZ3RoOworICAgIGlm
IChpID49IGxlbmd0aCkgeworICAgICAgICAvLyBQcm9oaWJpdCBncm93aW5nIHRoZSBhcnJheSBp
ZiBsZW5ndGggaXMgbm90IHdyaXRhYmxlLgorICAgICAgICBpZiAobWFwLT5sZW5ndGhJc1JlYWRP
bmx5KCkpCisgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHNob3VsZFRocm93LCBTdHJp
Y3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOworICAgICAgICBpZiAoIWlzRXh0ZW5z
aWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHJlamVjdChleGVjLCBzaG91bGRUaHJvdywgIkF0
dGVtcHRpbmcgdG8gZGVmaW5lIHByb3BlcnR5IG9uIG9iamVjdCB0aGF0IGlzIG5vdCBleHRlbnNp
YmxlLiIpOworICAgICAgICBsZW5ndGggPSBpICsgMTsKKyAgICAgICAgc3RvcmFnZS0+bV9sZW5n
dGggPSBsZW5ndGg7CisgICAgfQorCisgICAgLy8gV2UgYXJlIGN1cnJlbnRseSB1c2luZyBhIG1h
cCAtIGNoZWNrIHdoZXRoZXIgd2Ugc3RpbGwgd2FudCB0byBiZSBkb2luZyBzby4KKyAgICAvLyBX
ZSB3aWxsIGNvbnRpbnVlICB0byB1c2UgYSBzcGFyc2UgbWFwIGlmIFNwYXJzZU1vZGUgaXMgc2V0
LCBhIHZlY3RvciB3b3VsZCBiZSB0b28gc3BhcnNlLCBvciBpZiBhbGxvY2F0aW9uIGZhaWxzLgor
ICAgIHVuc2lnbmVkIG51bVZhbHVlc0luQXJyYXkgPSBzdG9yYWdlLT5tX251bVZhbHVlc0luVmVj
dG9yICsgbWFwLT5zaXplKCk7CisgICAgaWYgKG1hcC0+c3BhcnNlTW9kZSgpIHx8ICFpc0RlbnNl
RW5vdWdoRm9yVmVjdG9yKGxlbmd0aCwgbnVtVmFsdWVzSW5BcnJheSkgfHwgIWluY3JlYXNlVmVj
dG9yTGVuZ3RoKGV4ZWMtPmdsb2JhbERhdGEoKSwgbGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuIG1h
cC0+cHV0RGlyZWN0KGV4ZWMsIHRoaXMsIGksIHZhbHVlLCBzaG91bGRUaHJvdyk7CisKKyAgICAv
LyBSZXJlYWQgbV9zdG9yYWdlIGFmdGVyaW5jcmVhc2VWZWN0b3JMZW5ndGgsIHVwZGF0ZSBtX251
bVZhbHVlc0luVmVjdG9yLgorICAgIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CisgICAgc3RvcmFnZS0+
bV9udW1WYWx1ZXNJblZlY3RvciA9IG51bVZhbHVlc0luQXJyYXk7CisKKyAgICAvLyBDb3B5IGFs
bCB2YWx1ZXMgZnJvbSB0aGUgbWFwIGludG8gdGhlIHZlY3RvciwgYW5kIGRlbGV0ZSB0aGUgbWFw
LgorICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogdmVjdG9yID0gc3RvcmFnZS0+bV92ZWN0b3I7
CisgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLT5lbmQo
KTsKKyAgICBmb3IgKFNwYXJzZUFycmF5VmFsdWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFw
LT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIHZlY3RvcltpdC0+Zmlyc3RdLnNl
dChnbG9iYWxEYXRhLCB0aGlzLCBpdC0+c2Vjb25kLmdldE5vblNwYXJzZU1vZGUoKSk7CisgICAg
ZGVhbGxvY2F0ZVNwYXJzZU1hcCgpOworCisgICAgLy8gU3RvcmUgdGhlIG5ldyBwcm9wZXJ0eSBp
bnRvIHRoZSB2ZWN0b3IuCisgICAgV3JpdGVCYXJyaWVyPFVua25vd24+JiB2YWx1ZVNsb3QgPSB2
ZWN0b3JbaV07CisgICAgaWYgKCF2YWx1ZVNsb3QpCisgICAgICAgICsrc3RvcmFnZS0+bV9udW1W
YWx1ZXNJblZlY3RvcjsKKyAgICB2YWx1ZVNsb3Quc2V0KGdsb2JhbERhdGEsIHRoaXMsIHZhbHVl
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eShK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQogewogICAgIEpTQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAkocmV2aXNpb24g
MTA5NjQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8v
IFRoZXNlIG1ldGhvZHMgbWF5IG11dGF0ZSB0aGUgY29udGVudHMgb2YgdGhlIG1hcAogICAgICAg
ICB2b2lkIHB1dChFeGVjU3RhdGUqLCBKU0FycmF5KiwgdW5zaWduZWQsIEpTVmFsdWUpOworICAg
ICAgICBib29sIHB1dERpcmVjdChFeGVjU3RhdGUqLCBKU0FycmF5KiwgdW5zaWduZWQsIEpTVmFs
dWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgICAgICBzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+
IGFkZChKU0FycmF5KiwgdW5zaWduZWQpOwogICAgICAgICBpdGVyYXRvciBmaW5kKHVuc2lnbmVk
IGkpIHsgcmV0dXJuIG1fbWFwLmZpbmQoaSk7IH0KICAgICAgICAgLy8gVGhpcyBzaG91bGQgQVNT
RVJUIHRoZSByZW1vdmUgaXMgdmFsaWQgKGNoZWNrIHRoZSByZXN1bHQgb2YgdGhlIGZpbmQpLgpA
QCAtMTYwLDYgKzE2MSwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqLCBFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlKTsKKyAgICAgICAgLy8gVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBKU09iamVj
dDo6cHV0RGlyZWN0KiBtZXRob2RzOgorICAgICAgICAvLyAgLSB0aGUgcHJvdG90eXBlIGNoYWlu
IGlzIG5vdCBjb25zdWx0ZWQKKyAgICAgICAgLy8gIC0gYWNjZXNzb3JzIGFyZSBub3QgY2FsbGVk
LgorICAgICAgICAvLyBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgcHJvcGVydHkgd2l0aCBhdHRyaWJ1
dGVzIHdyaXRhYmxlLCBlbnVtZXJhYmxlIGFuZCBjb25maWd1cmFibGUgYWxsIHNldCB0byB0cnVl
LgorICAgICAgICBib29sIHB1dERpcmVjdEluZGV4KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93ID0gdHJ1ZSkgewor
ICAgICAgICAgICAgaWYgKGNhblNldEluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAg
ICAgICBzZXRJbmRleChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIHB1dERpcmVjdEluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBKU19F
WFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAgICAgICAgIApAQCAtMjgzLDYgKzI5
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
U2xvd0Nhc2UoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdm9pZCBwdXRCeUluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIGJvb2wgcHV0RGlyZWN0
SW5kZXhCZXlvbmRWZWN0b3JMZW5ndGgoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogCiAgICAgICAgIHVuc2ln
bmVkIGdldE5ld1ZlY3Rvckxlbmd0aCh1bnNpZ25lZCBkZXNpcmVkTGVuZ3RoKTsKICAgICAgICAg
Ym9vbCBpbmNyZWFzZVZlY3Rvckxlbmd0aChKU0dsb2JhbERhdGEmLCB1bnNpZ25lZCBuZXdMZW5n
dGgpOwo=
</data>
<flag name="review"
          id="132881"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>