<?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>145303</bug_id>
          
          <creation_ts>2015-05-22 01:22:22 -0700</creation_ts>
          <short_desc>[JSC] Speed up new array construction in Array.prototype.splice().</short_desc>
          <delta_ts>2015-05-26 09:00:24 -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>Performance</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>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096819</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-22 01:22:22 -0700</bug_when>
    <thetext>Let&apos;s use Ryosuke&apos;s JSArray::fastSlice() for Array.prototype.splice() too :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096820</commentid>
    <comment_count>1</comment_count>
      <attachid>253584</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-22 01:22:45 -0700</bug_when>
    <thetext>Created attachment 253584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096822</commentid>
    <comment_count>2</comment_count>
      <attachid>253584</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-22 01:32:05 -0700</bug_when>
    <thetext>Comment on attachment 253584
Patch

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

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:669
&gt; +        for (unsigned k = 0; k &lt; deleteCount; k++) {

++k

&gt; Source/JavaScriptCore/runtime/JSArray.cpp:684
&gt; +    case ALL_INT32_INDEXING_TYPES:
&gt; +    case ALL_DOUBLE_INDEXING_TYPES:
&gt; +    case ALL_CONTIGUOUS_INDEXING_TYPES: {

I don&apos;t think that changes anything, fastSlice() always happen after isJSArray().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096824</commentid>
    <comment_count>3</comment_count>
      <attachid>253585</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-22 01:49:19 -0700</bug_when>
    <thetext>Created attachment 253585
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096833</commentid>
    <comment_count>4</comment_count>
      <attachid>253585</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-22 03:18:58 -0700</bug_when>
    <thetext>Comment on attachment 253585
Patch for landing

Clearing flags on attachment: 253585

Committed r184767: &lt;http://trac.webkit.org/changeset/184767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096834</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-22 03:19:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097317</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-26 09:00:24 -0700</bug_when>
    <thetext>*** Bug 145302 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253584</attachid>
            <date>2015-05-22 01:22:45 -0700</date>
            <delta_ts>2015-05-22 01:49:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145303.diff</filename>
            <type>text/plain</type>
            <size>6470</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFjMTdiYTguLmM5ZmY3NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE1LTA1LTIyICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBTcGVlZCB1cCBuZXcgYXJyYXkg
Y29uc3RydWN0aW9uIGluIEFycmF5LnByb3RvdHlwZS5zcGxpY2UoKS4KKyAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0NTMwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHaXZlIHNwbGljZSgpIGEgZmFzdCBwYXRoIGp1c3QgbGlrZSBzbGlj
ZSgpLCBmb3IgaW5kZXhpbmcgdHlwZXMgd2hlcmUgdGhlIGJhY2tpbmcKKyAgICAgICAgc3RvcmUg
Y2FuIGJlIG1lbWNweSdkLiBJIGdlbmVyYWxpemVkIEpTQXJyYXk6OmZhc3RTbGljZSgpIGEgbGl0
dGxlIGJpdCBzbyBpdCB3b3JrcworICAgICAgICBmb3IgdGhpcyBvcHRpbWl6YXRpb24gYXMgd2Vs
bC4KKworICAgICAgICA3JSBwcm9ncmVzc2lvbiBvbiBLcmFrZW4vc3RhbmZvcmQtY3J5cHRvLXBi
a2RmMi4KKworICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmZhc3RTbGljZSk6IFR3ZWFrIHRo
aXMgdG8gcmV0dXJuIEpTQXJyYXkqLCBhbmQgZXhwYW5kIGl0IHRvIHN1cHBvcnQKKyAgICAgICAg
bm9uLWFycmF5IGJ1dHRlcmZsaWVzIHdpdGggbWVtY3B5J2FibGUgaW5kZXhpbmcgdHlwZXMuCisK
KyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNTbGljZSk6IFVwZGF0ZSBmb3IgZmFzdFNsaWNlKCkgY2hhbmdlcy4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTcGxpY2UpOgorCiAyMDE1LTA1LTIxICBQZXIgQXJuZSBW
b2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBNU1ZDIGludGVybmFsIGNvbXBp
bGVyIGVycm9yIHdoZW4gY29tcGlsaW5nIFRlbXBsYXRlUmVnaXN0cnlLZXkgY2xhc3MuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXgg
YmM5ZWM3ZS4uZDVkZWM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcApAQCAtNjAyLDkgKzYwMiw4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdW5z
aWduZWQgZW5kID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVjLCAxLCBs
ZW5ndGgsIGxlbmd0aCk7CiAKICAgICBpZiAoaXNKU0FycmF5KHRoaXNPYmopKSB7Ci0gICAgICAg
IEVuY29kZWRKU1ZhbHVlIHJlc3VsdDsKLSAgICAgICAgaWYgKGFzQXJyYXkodGhpc09iaiktPmZh
c3RTbGljZSgqZXhlYywgYmVnaW4sIGVuZCAtIGJlZ2luLCByZXN1bHQpKQotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgaWYgKEpTQXJyYXkqIHJlc3VsdCA9IGFzQXJyYXkodGhp
c09iaiktPmZhc3RTbGljZSgqZXhlYywgYmVnaW4sIGVuZCAtIGJlZ2luKSkKKyAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9CiAKICAgICBKU0FycmF5KiBy
ZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIsIGVuZCAtIGJlZ2luKTsK
QEAgLTYzNCw2ICs2MzMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxNS40LjQuMTIKIAorICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisKICAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRo
aXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1
bnNpZ25lZCBsZW5ndGggPSBnZXRMZW5ndGgoZXhlYywgdGhpc09iaik7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQpAQCAtNjU1LDE3ICs2NTYsMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICBkZWxldGVDb3VudCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZWxldGVEb3VibGUpOwog
ICAgIH0KIAotICAgIEpTQXJyYXkqIHJlc09iaiA9IEpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlh
bGl6ZWQoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVj
dHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwg
ZGVsZXRlQ291bnQpOwotICAgIGlmICghcmVzT2JqKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKSk7CisgICAgSlNBcnJheSogcmVzdWx0
ID0gbnVsbHB0cjsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gcmVzT2JqOwotICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyBr
KyspIHsKLSAgICAgICAgSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayAr
IGJlZ2luKTsKLSAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgcmVzT2JqLT5p
bml0aWFsaXplSW5kZXgodm0sIGssIHYpOworICAgIGlmIChpc0pTQXJyYXkodGhpc09iaikpCisg
ICAgICAgIHJlc3VsdCA9IGFzQXJyYXkodGhpc09iaiktPmZhc3RTbGljZSgqZXhlYywgYmVnaW4s
IGRlbGV0ZUNvdW50KTsKKworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHJlc3VsdCA9IEpT
QXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRp
b24oQXJyYXlXaXRoVW5kZWNpZGVkKSwgZGVsZXRlQ291bnQpOworICAgICAgICBpZiAoIXJlc3Vs
dCkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVy
cm9yKGV4ZWMpKTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgZGVsZXRlQ291
bnQ7IGsrKykgeworICAgICAgICAgICAgSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhp
c09iaiwgayArIGJlZ2luKTsKKyAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgICAgICAgICAgcmVzdWx0LT5pbml0aWFsaXplSW5kZXgodm0sIGssIHYpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgdW5zaWduZWQgYWRkaXRpb25hbEFyZ3MgPSBzdGQ6Om1heDxpbnQ+KGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSAtIDIsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAppbmRleCAwNGFhZGJiLi4yNjU0NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtNjc1LDIzICs2NzUsMjEgQEAgdm9pZCBKU0Fy
cmF5OjpwdXNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICB9CiB9CiAKLWJv
b2wgSlNBcnJheTo6ZmFzdFNsaWNlKEV4ZWNTdGF0ZSYgZXhlYywgdW5zaWduZWQgc3RhcnRJbmRl
eCwgdW5zaWduZWQgY291bnQsIEVuY29kZWRKU1ZhbHVlJiByZXN1bHQpCitKU0FycmF5KiBKU0Fy
cmF5OjpmYXN0U2xpY2UoRXhlY1N0YXRlJiBleGVjLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNp
Z25lZCBjb3VudCkKIHsKICAgICBhdXRvIGFycmF5VHlwZSA9IGluZGV4aW5nVHlwZSgpOwogICAg
IHN3aXRjaCAoYXJyYXlUeXBlKSB7Ci0gICAgY2FzZSBBcnJheVdpdGhEb3VibGU6Ci0gICAgY2Fz
ZSBBcnJheVdpdGhJbnQzMjoKLSAgICBjYXNlIEFycmF5V2l0aENvbnRpZ3VvdXM6IHsKKyAgICBj
YXNlIEFMTF9JTlQzMl9JTkRFWElOR19UWVBFUzoKKyAgICBjYXNlIEFMTF9ET1VCTEVfSU5ERVhJ
TkdfVFlQRVM6CisgICAgY2FzZSBBTExfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzogewogICAg
ICAgICBWTSYgdm0gPSBleGVjLnZtKCk7CiAgICAgICAgIGlmIChjb3VudCA+PSBNSU5fU1BBUlNF
X0FSUkFZX0lOREVYIHx8IHN0cnVjdHVyZSh2bSktPmhvbGVzTXVzdEZvcndhcmRUb1Byb3RvdHlw
ZSh2bSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHJlc3VsdFN0cnVjdHVyZSA9IGV4ZWMubGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9j
YXRpb24oYXJyYXlUeXBlKTsKICAgICAgICAgSlNBcnJheSogcmVzdWx0QXJyYXkgPSBKU0FycmF5
Ojp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHZtLCByZXN1bHRTdHJ1Y3R1cmUsIGNvdW50KTsKLSAg
ICAgICAgaWYgKCFyZXN1bHRBcnJheSkgewotICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93T3V0T2ZNZW1vcnlFcnJvcigmZXhlYykpOwotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFyZXN1bHRBcnJheSkKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGF1dG8mIHJlc3VsdEJ1dHRlcmZseSA9ICpyZXN1
bHRBcnJheS0+YnV0dGVyZmx5KCk7CiAgICAgICAgIGlmIChhcnJheVR5cGUgPT0gQXJyYXlXaXRo
RG91YmxlKQpAQCAtNzAwLDEzICs2OTgsMTEgQEAgYm9vbCBKU0FycmF5OjpmYXN0U2xpY2UoRXhl
Y1N0YXRlJiBleGVjLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCBjb3VudCwgRW4KICAg
ICAgICAgICAgIG1lbWNweShyZXN1bHRCdXR0ZXJmbHkuY29udGlndW91cygpLmRhdGEoKSwgbV9i
dXR0ZXJmbHktPmNvbnRpZ3VvdXMoKS5kYXRhKCkgKyBzdGFydEluZGV4LCBzaXplb2YoSlNWYWx1
ZSkgKiBjb3VudCk7CiAgICAgICAgIHJlc3VsdEJ1dHRlcmZseS5zZXRQdWJsaWNMZW5ndGgoY291
bnQpOwogCi0gICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7Ci0g
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gcmVzdWx0QXJyYXk7CiAgICAgfQog
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEpTQXJyYXk6OnNoaWZ0Q291bnRXaXRo
QXJyYXlTdG9yYWdlKFZNJiB2bSwgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgY291bnQs
IEFycmF5U3RvcmFnZSogc3RvcmFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaAppbmRleCBkOWUxM2VkLi5iNzZmYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJ
VkFURSB2b2lkIHB1c2goRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgSlNWYWx1ZSBwb3AoRXhlY1N0YXRlKik7CiAKLSAgICBib29sIGZhc3RTbGljZShFeGVjU3Rh
dGUmLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCBjb3VudCwgRW5jb2RlZEpTVmFsdWUm
KTsKKyAgICBKU0FycmF5KiBmYXN0U2xpY2UoRXhlY1N0YXRlJiwgdW5zaWduZWQgc3RhcnRJbmRl
eCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgZW51bSBTaGlmdENvdW50TW9kZSB7CiAgICAgICAg
IC8vIFRoaXMgZm9ybSBvZiBzaGlmdCBoaW50cyB0aGF0IHdlJ3JlIGRvaW5nIHF1ZXVlaW5nLiBX
aXRoIHRoaXMgYXNzdW1wdGlvbiBpbiBoYW5kLAo=
</data>
<flag name="review"
          id="278508"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253585</attachid>
            <date>2015-05-22 01:49:19 -0700</date>
            <delta_ts>2015-05-22 03:18:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>land-145303.diff</filename>
            <type>text/plain</type>
            <size>6565</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFjMTdiYTguLmM1NWFlZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA1LTIyICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBTcGVlZCB1cCBuZXcgYXJyYXkg
Y29uc3RydWN0aW9uIGluIEFycmF5LnByb3RvdHlwZS5zcGxpY2UoKS4KKyAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0NTMwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQ
b3VsYWluLgorCisgICAgICAgIEdpdmUgc3BsaWNlKCkgYSBmYXN0IHBhdGgganVzdCBsaWtlIHNs
aWNlKCksIGZvciBpbmRleGluZyB0eXBlcyB3aGVyZSB0aGUgYmFja2luZworICAgICAgICBzdG9y
ZSBjYW4gYmUgbWVtY3B5J2QuIEkgZ2VuZXJhbGl6ZWQgSlNBcnJheTo6ZmFzdFNsaWNlKCkgYSBs
aXR0bGUgYml0IHNvIGl0IHdvcmtzCisgICAgICAgIGZvciB0aGlzIG9wdGltaXphdGlvbiBhcyB3
ZWxsLgorCisgICAgICAgIDclIHByb2dyZXNzaW9uIG9uIEtyYWtlbi9zdGFuZm9yZC1jcnlwdG8t
cGJrZGYyLgorCisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGlt
ZS9KU0FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6ZmFzdFNsaWNlKTogVHdlYWsg
dGhpcyB0byByZXR1cm4gSlNBcnJheSosIGFuZCBkb24ndCBib3RoZXIgdGhyb3dpbmcKKyAgICAg
ICAgb3V0LW9mLW1lbW9yeSBleGNlcHRpb25zLiBMZXQgdGhlIGNhbGxlciB3b3JyeSBhYm91dCB0
aGF0LgorCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OmFycmF5UHJvdG9GdW5jU2xpY2UpOiBVcGRhdGUgZm9yIGZhc3RTbGljZSgpIGNoYW5nZXMu
CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU3BsaWNlKTogSWYgdGhlIG9iamVjdCB3ZSdy
ZSBzcGxpY2luZyBvdXQgb2YgaXMgYSBib25hIGZpZGUKKyAgICAgICAgSlNBcnJheSwgdXNlIGZh
c3RTbGljZSgpIHRvIGNyZWF0ZSB0aGUgcmV0dXJuZWQgYXJyYXkgaW5zdGVhZCBvZiBkb2luZyBh
IGdlbmVyaWMKKyAgICAgICAgZ2V0L3B1dCBsb29wLgorCiAyMDE1LTA1LTIxICBQZXIgQXJuZSBW
b2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBNU1ZDIGludGVybmFsIGNvbXBp
bGVyIGVycm9yIHdoZW4gY29tcGlsaW5nIFRlbXBsYXRlUmVnaXN0cnlLZXkgY2xhc3MuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXgg
YmM5ZWM3ZS4uYTRiYjNkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcApAQCAtNjAyLDkgKzYwMiw4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdW5z
aWduZWQgZW5kID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVjLCAxLCBs
ZW5ndGgsIGxlbmd0aCk7CiAKICAgICBpZiAoaXNKU0FycmF5KHRoaXNPYmopKSB7Ci0gICAgICAg
IEVuY29kZWRKU1ZhbHVlIHJlc3VsdDsKLSAgICAgICAgaWYgKGFzQXJyYXkodGhpc09iaiktPmZh
c3RTbGljZSgqZXhlYywgYmVnaW4sIGVuZCAtIGJlZ2luLCByZXN1bHQpKQotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgaWYgKEpTQXJyYXkqIHJlc3VsdCA9IGFzQXJyYXkodGhp
c09iaiktPmZhc3RTbGljZSgqZXhlYywgYmVnaW4sIGVuZCAtIGJlZ2luKSkKKyAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9CiAKICAgICBKU0FycmF5KiBy
ZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIsIGVuZCAtIGJlZ2luKTsK
QEAgLTYzNCw2ICs2MzMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxNS40LjQuMTIKIAorICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisKICAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRo
aXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1
bnNpZ25lZCBsZW5ndGggPSBnZXRMZW5ndGgoZXhlYywgdGhpc09iaik7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQpAQCAtNjU1LDE3ICs2NTYsMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICBkZWxldGVDb3VudCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZWxldGVEb3VibGUpOwog
ICAgIH0KIAotICAgIEpTQXJyYXkqIHJlc09iaiA9IEpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlh
bGl6ZWQoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVj
dHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwg
ZGVsZXRlQ291bnQpOwotICAgIGlmICghcmVzT2JqKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKSk7CisgICAgSlNBcnJheSogcmVzdWx0
ID0gbnVsbHB0cjsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gcmVzT2JqOwotICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyBr
KyspIHsKLSAgICAgICAgSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayAr
IGJlZ2luKTsKLSAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgcmVzT2JqLT5p
bml0aWFsaXplSW5kZXgodm0sIGssIHYpOworICAgIGlmIChpc0pTQXJyYXkodGhpc09iaikpCisg
ICAgICAgIHJlc3VsdCA9IGFzQXJyYXkodGhpc09iaiktPmZhc3RTbGljZSgqZXhlYywgYmVnaW4s
IGRlbGV0ZUNvdW50KTsKKworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHJlc3VsdCA9IEpT
QXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5
V2l0aFVuZGVjaWRlZCksIGRlbGV0ZUNvdW50KTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVj
KSk7CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyArK2sp
IHsKKyAgICAgICAgICAgIEpTVmFsdWUgdiA9IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGsg
KyBiZWdpbik7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAg
ICAgIHJlc3VsdC0+aW5pdGlhbGl6ZUluZGV4KHZtLCBrLCB2KTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIHVuc2lnbmVkIGFkZGl0aW9uYWxBcmdzID0gc3RkOjptYXg8aW50PihleGVjLT5hcmd1
bWVudENvdW50KCkgLSAyLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAKaW5kZXggMDRhYWRiYi4uZmRkYTI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKQEAgLTY3NSw3ICs2NzUsNyBAQCB2b2lkIEpTQXJyYXk6OnB1c2go
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIH0KIH0KIAotYm9vbCBKU0FycmF5
OjpmYXN0U2xpY2UoRXhlY1N0YXRlJiBleGVjLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25l
ZCBjb3VudCwgRW5jb2RlZEpTVmFsdWUmIHJlc3VsdCkKK0pTQXJyYXkqIEpTQXJyYXk6OmZhc3RT
bGljZShFeGVjU3RhdGUmIGV4ZWMsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIGNvdW50
KQogewogICAgIGF1dG8gYXJyYXlUeXBlID0gaW5kZXhpbmdUeXBlKCk7CiAgICAgc3dpdGNoIChh
cnJheVR5cGUpIHsKQEAgLTY4NCwxNCArNjg0LDEyIEBAIGJvb2wgSlNBcnJheTo6ZmFzdFNsaWNl
KEV4ZWNTdGF0ZSYgZXhlYywgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgY291bnQsIEVu
CiAgICAgY2FzZSBBcnJheVdpdGhDb250aWd1b3VzOiB7CiAgICAgICAgIFZNJiB2bSA9IGV4ZWMu
dm0oKTsKICAgICAgICAgaWYgKGNvdW50ID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVggfHwgc3Ry
dWN0dXJlKHZtKS0+aG9sZXNNdXN0Rm9yd2FyZFRvUHJvdG90eXBlKHZtKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIFN0
cnVjdHVyZSogcmVzdWx0U3RydWN0dXJlID0gZXhlYy5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFy
cmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihhcnJheVR5cGUpOwog
ICAgICAgICBKU0FycmF5KiByZXN1bHRBcnJheSA9IEpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlh
bGl6ZWQodm0sIHJlc3VsdFN0cnVjdHVyZSwgY291bnQpOwotICAgICAgICBpZiAoIXJlc3VsdEFy
cmF5KSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1l
bW9yeUVycm9yKCZleGVjKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQor
ICAgICAgICBpZiAoIXJlc3VsdEFycmF5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAgICAgYXV0byYgcmVzdWx0QnV0dGVyZmx5ID0gKnJlc3VsdEFycmF5LT5idXR0ZXJmbHko
KTsKICAgICAgICAgaWYgKGFycmF5VHlwZSA9PSBBcnJheVdpdGhEb3VibGUpCkBAIC03MDAsMTMg
KzY5OCwxMSBAQCBib29sIEpTQXJyYXk6OmZhc3RTbGljZShFeGVjU3RhdGUmIGV4ZWMsIHVuc2ln
bmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIGNvdW50LCBFbgogICAgICAgICAgICAgbWVtY3B5KHJl
c3VsdEJ1dHRlcmZseS5jb250aWd1b3VzKCkuZGF0YSgpLCBtX2J1dHRlcmZseS0+Y29udGlndW91
cygpLmRhdGEoKSArIHN0YXJ0SW5kZXgsIHNpemVvZihKU1ZhbHVlKSAqIGNvdW50KTsKICAgICAg
ICAgcmVzdWx0QnV0dGVyZmx5LnNldFB1YmxpY0xlbmd0aChjb3VudCk7CiAKLSAgICAgICAgcmVz
dWx0ID0gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdEFycmF5KTsKLSAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIHJldHVybiByZXN1bHRBcnJheTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAg
ICAgYnJlYWs7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7CiB9CiAKIGJvb2wgSlNBcnJheTo6c2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UoVk0mIHZt
LCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCBjb3VudCwgQXJyYXlTdG9yYWdlKiBzdG9y
YWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IGQ5ZTEzZWQu
LmI3NmZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTcz
LDcgKzczLDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHVzaChFeGVj
U3RhdGUqLCBKU1ZhbHVlKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHBvcChFeGVj
U3RhdGUqKTsKIAotICAgIGJvb2wgZmFzdFNsaWNlKEV4ZWNTdGF0ZSYsIHVuc2lnbmVkIHN0YXJ0
SW5kZXgsIHVuc2lnbmVkIGNvdW50LCBFbmNvZGVkSlNWYWx1ZSYpOworICAgIEpTQXJyYXkqIGZh
c3RTbGljZShFeGVjU3RhdGUmLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCBjb3VudCk7
CiAKICAgICBlbnVtIFNoaWZ0Q291bnRNb2RlIHsKICAgICAgICAgLy8gVGhpcyBmb3JtIG9mIHNo
aWZ0IGhpbnRzIHRoYXQgd2UncmUgZG9pbmcgcXVldWVpbmcuIFdpdGggdGhpcyBhc3N1bXB0aW9u
IGluIGhhbmQsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>