<?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>151817</bug_id>
          
          <creation_ts>2015-12-03 12:29:56 -0800</creation_ts>
          <short_desc>bmalloc: extra large allocations could be more efficient</short_desc>
          <delta_ts>2016-02-09 18:50:20 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>153923</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146012</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 12:29:56 -0800</bug_when>
    <thetext>BMalloc aligns extra large allocations to start on super chunk size aligned addresses.  It does this by increasing the allocation size to be at least two super chunks and then deallocating the front and back memory to get the start address to be super chunk aligned.  Given that the super chunk size is 4MB, we always ask the OS for 8MB for allocations 2MB or more and return the unused.  It makes sense to reduce the super chunk size to 2MB.

Secondly, when realloc is called on an extra large allocated piece of memory, we always allocate new memory and memcpy from the old.  There is a good possibility that we can get the memory for the increase from adjacently allocated memory, thus saving having both region allocated at once and the memcpy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146013</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 12:30:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/23639897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146014</commentid>
    <comment_count>2</comment_count>
      <attachid>266545</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 12:34:14 -0800</bug_when>
    <thetext>Created attachment 266545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146021</commentid>
    <comment_count>3</comment_count>
      <attachid>266545</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-03 12:49:20 -0800</bug_when>
    <thetext>Comment on attachment 266545
Patch

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

r=me

&gt; Source/bmalloc/bmalloc/VMAllocate.h:36
&gt; +#include &lt;wtf/DataLog.h&gt;

Revert.

&gt; Source/bmalloc/bmalloc/VMAllocate.h:92
&gt; +    if (vmOldSize &gt;= vmNewSize)
&gt; +        return true;

I think this should be an ASSERT instead of a check.

This function doesn&apos;t truly honor a shrink in size, since it doesn&apos;t shrink the allocation. So it should not pretend to succeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146037</commentid>
    <comment_count>4</comment_count>
      <attachid>266552</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 13:24:16 -0800</bug_when>
    <thetext>Created attachment 266552
Removed debugging include to fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146038</commentid>
    <comment_count>5</comment_count>
      <attachid>266552</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-03 13:28:20 -0800</bug_when>
    <thetext>Comment on attachment 266552
Removed debugging include to fix build

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

r=me

&gt; Source/bmalloc/bmalloc/VMAllocate.h:91
&gt; +    if (vmOldSize &gt;= vmNewSize)
&gt; +        return true;

Same comment about ASSERT here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146039</commentid>
    <comment_count>6</comment_count>
      <attachid>266553</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-03 13:31:21 -0800</bug_when>
    <thetext>Created attachment 266553
Patch for landing

Didn&apos;t see the comments when I posted the last patch.  Changed the &quot;if&quot; into an assert as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146041</commentid>
    <comment_count>7</comment_count>
      <attachid>266553</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 13:45:07 -0800</bug_when>
    <thetext>Comment on attachment 266553
Patch for landing

Clearing flags on attachment: 266553

Committed r193373: &lt;http://trac.webkit.org/changeset/193373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146042</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 13:45:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266545</attachid>
            <date>2015-12-03 12:34:14 -0800</date>
            <delta_ts>2015-12-03 13:24:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>151817.patch</filename>
            <type>text/plain</type>
            <size>4244</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MzM2NSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE1LTEyLTAzICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2M6IGV4dHJhIGxh
cmdlIGFsbG9jYXRpb25zIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2VkIHRoZSBzdXBlciBjaHVuayBz
aXplIGZyb20gNE1CIHRvIDJNQi4KKworICAgICAgICBBZGRlZCBwYXRoIHRvIHJlYWxsb2NhdGUo
KSBvZiBhbiBleHRyYSBsYXJnZSBvYmplY3QgdG8gc2VlIGlmIHdlIGNhbiBleHRlbmQgdGhlIGFs
bG9jYXRpb24uCisKKyAgICAgICAgKiBibWFsbG9jL0FsbG9jYXRvci5jcHA6CisgICAgICAgIChi
bWFsbG9jOjpBbGxvY2F0b3I6OnJlYWxsb2NhdGUpOgorICAgICAgICAqIGJtYWxsb2MvU2VncmVn
YXRlZEZyZWVMaXN0Lmg6CisgICAgICAgICogYm1hbGxvYy9TaXplcy5oOgorICAgICAgICAqIGJt
YWxsb2MvVk1BbGxvY2F0ZS5oOgorICAgICAgICAoYm1hbGxvYzo6dHJ5Vk1BbGxvY2F0ZSk6Cisg
ICAgICAgIChibWFsbG9jOjp0cnlWTUV4dGVuZCk6CisgICAgICAgIChibWFsbG9jOjp2bUFsbG9j
YXRlKToKKwogMjAxNS0xMS0xMSAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1Pgog
CiAgICAgICAgIGJtYWxsb2M6IEFkZCBsaWJkbCBkZXBlbmRlbmN5CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0FsbG9jYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9BbGxvY2F0b3IuY3BwCShyZXZpc2lvbiAxOTI4MjApCisrKyBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0FsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsMTEg
QEAgdm9pZCogQWxsb2NhdG9yOjpyZWFsbG9jYXRlKHZvaWQqIG9iamVjdAogICAgICAgICBSYW5n
ZSYgcmFuZ2UgPSBQZXJQcm9jZXNzPEhlYXA+OjpnZXRGYXN0Q2FzZSgpLT5maW5kWExhcmdlKGxv
Y2ssIG9iamVjdCk7CiAgICAgICAgIG9sZFNpemUgPSByYW5nZS5zaXplKCk7CiAKKyAgICAgICAg
bmV3U2l6ZSA9IHJvdW5kVXBUb011bHRpcGxlT2Y8eExhcmdlQWxpZ25tZW50PihuZXdTaXplKTsK
KworICAgICAgICBpZiAobmV3U2l6ZSA9PSBvbGRTaXplKQorICAgICAgICAgICAgcmV0dXJuIG9i
amVjdDsKKwogICAgICAgICBpZiAobmV3U2l6ZSA8IG9sZFNpemUgJiYgbmV3U2l6ZSA+IGxhcmdl
TWF4KSB7CiAgICAgICAgICAgICBuZXdTaXplID0gcm91bmRVcFRvTXVsdGlwbGVPZjx4TGFyZ2VB
bGlnbm1lbnQ+KG5ld1NpemUpOwogICAgICAgICAgICAgaWYgKG9sZFNpemUgLSBuZXdTaXplID49
IHhMYXJnZUFsaWdubWVudCkgewpAQCAtMTczLDYgKzE3OCwxNyBAQCB2b2lkKiBBbGxvY2F0b3I6
OnJlYWxsb2NhdGUodm9pZCogb2JqZWN0CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0OwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1NpemUgPiBvbGRTaXplKSB7
CisgICAgICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICAgICAgYm9vbCB3YXNFeHRlbmRl
ZCA9IHRyeVZNRXh0ZW5kKG9iamVjdCwgb2xkU2l6ZSwgbmV3U2l6ZSk7CisgICAgICAgICAgICBs
b2NrLmxvY2soKTsKKworICAgICAgICAgICAgaWYgKHdhc0V4dGVuZGVkKSB7CisgICAgICAgICAg
ICAgICAgcmFuZ2UgPSBSYW5nZShvYmplY3QsIG5ld1NpemUpOworICAgICAgICAgICAgICAgIHJl
dHVybiBvYmplY3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2VncmVnYXRlZEZyZWVM
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdyZWdhdGVkRnJl
ZUxpc3QuaAkocmV2aXNpb24gMTkyODIwKQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdy
ZWdhdGVkRnJlZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIEZyZWVMaXN0JiBzZWxlY3Qoc2l6ZV90KTsKIAogICAgIE93bmVyIG1fb3duZXI7Ci0g
ICAgc3RkOjphcnJheTxGcmVlTGlzdCwgMTY+IG1fZnJlZUxpc3RzOworICAgIHN0ZDo6YXJyYXk8
RnJlZUxpc3QsIDE1PiBtX2ZyZWVMaXN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIGJtYWxsb2MK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL1NpemVzLmgJKHJldmlzaW9uIDE5MjgyMCkKKysrIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBu
YW1lc3BhY2UgU2l6ZXMgewogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCB2bVBhZ2VN
YXNrID0gfih2bVBhZ2VTaXplIC0gMSk7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBz
dXBlckNodW5rU2l6ZSA9IDQgKiBNQjsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHN1cGVyQ2h1
bmtTaXplID0gMiAqIE1COwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzbWFsbE1heCA9IDI1
NjsKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNtYWxsTGluZVNpemUgPSAyNTY7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAkocmV2aXNpb24gMTkyODIwKQorKysgU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KICNpbmNs
dWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogCiAjaWYgQk9TKERBUldJ
TikKICNpbmNsdWRlIDxtYWNoL3ZtX3N0YXRpc3RpY3MuaD4KQEAgLTgyLDYgKzgzLDMwIEBAIGlu
bGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitpbmxpbmUgYm9vbCB0cnlWTUV4dGVuZCh2b2lkKiBwLCBzaXplX3Qgdm1PbGRTaXpl
LCBzaXplX3Qgdm1OZXdTaXplKQoreworICAgIHZtVmFsaWRhdGUodm1PbGRTaXplKTsKKyAgICB2
bVZhbGlkYXRlKHZtTmV3U2l6ZSk7CisgICAgCisgICAgaWYgKHZtT2xkU2l6ZSA+PSB2bU5ld1Np
emUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgdm9pZCogbmV4dEFkZHJlc3MgPSBzdGF0
aWNfY2FzdDxjaGFyKj4ocCkgKyB2bU9sZFNpemU7CisgICAgc2l6ZV90IGV4dGVudGlvblNpemUg
PSB2bU5ld1NpemUgLSB2bU9sZFNpemU7CisKKyAgICB2b2lkKiByZXN1bHQgPSBtbWFwKG5leHRB
ZGRyZXNzLCBleHRlbnRpb25TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFU
RSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7CisKKyAgICBpZiAocmVzdWx0ID09IE1B
UF9GQUlMRUQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChyZXN1bHQgIT0gbmV4
dEFkZHJlc3MpIHsKKyAgICAgICAgbXVubWFwKHJlc3VsdCwgZXh0ZW50aW9uU2l6ZSk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGlu
bGluZSB2b2lkKiB2bUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm9pZCogcmVzdWx0
ID0gdHJ5Vk1BbGxvY2F0ZSh2bVNpemUpOwo=
</data>
<flag name="review"
          id="291556"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="291561"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266552</attachid>
            <date>2015-12-03 13:24:16 -0800</date>
            <delta_ts>2015-12-03 13:31:21 -0800</delta_ts>
            <desc>Removed debugging include to fix build</desc>
            <filename>151817-2.patch</filename>
            <type>text/plain</type>
            <size>4082</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MzM2OCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE1LTEyLTAzICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2M6IGV4dHJhIGxh
cmdlIGFsbG9jYXRpb25zIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2VkIHRoZSBzdXBlciBjaHVuayBz
aXplIGZyb20gNE1CIHRvIDJNQi4KKworICAgICAgICBBZGRlZCBwYXRoIHRvIHJlYWxsb2NhdGUo
KSBvZiBhbiBleHRyYSBsYXJnZSBvYmplY3QgdG8gc2VlIGlmIHdlIGNhbiBleHRlbmQgdGhlIGFs
bG9jYXRpb24uCisKKyAgICAgICAgKiBibWFsbG9jL0FsbG9jYXRvci5jcHA6CisgICAgICAgIChi
bWFsbG9jOjpBbGxvY2F0b3I6OnJlYWxsb2NhdGUpOgorICAgICAgICAqIGJtYWxsb2MvU2VncmVn
YXRlZEZyZWVMaXN0Lmg6CisgICAgICAgICogYm1hbGxvYy9TaXplcy5oOgorICAgICAgICAqIGJt
YWxsb2MvVk1BbGxvY2F0ZS5oOgorICAgICAgICAoYm1hbGxvYzo6dHJ5Vk1BbGxvY2F0ZSk6Cisg
ICAgICAgIChibWFsbG9jOjp0cnlWTUV4dGVuZCk6CisgICAgICAgIChibWFsbG9jOjp2bUFsbG9j
YXRlKToKKwogMjAxNS0xMS0xMSAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1Pgog
CiAgICAgICAgIGJtYWxsb2M6IEFkZCBsaWJkbCBkZXBlbmRlbmN5CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0FsbG9jYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9BbGxvY2F0b3IuY3BwCShyZXZpc2lvbiAxOTMzNjgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0FsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsMTEg
QEAgdm9pZCogQWxsb2NhdG9yOjpyZWFsbG9jYXRlKHZvaWQqIG9iamVjdAogICAgICAgICBSYW5n
ZSYgcmFuZ2UgPSBQZXJQcm9jZXNzPEhlYXA+OjpnZXRGYXN0Q2FzZSgpLT5maW5kWExhcmdlKGxv
Y2ssIG9iamVjdCk7CiAgICAgICAgIG9sZFNpemUgPSByYW5nZS5zaXplKCk7CiAKKyAgICAgICAg
bmV3U2l6ZSA9IHJvdW5kVXBUb011bHRpcGxlT2Y8eExhcmdlQWxpZ25tZW50PihuZXdTaXplKTsK
KworICAgICAgICBpZiAobmV3U2l6ZSA9PSBvbGRTaXplKQorICAgICAgICAgICAgcmV0dXJuIG9i
amVjdDsKKwogICAgICAgICBpZiAobmV3U2l6ZSA8IG9sZFNpemUgJiYgbmV3U2l6ZSA+IGxhcmdl
TWF4KSB7CiAgICAgICAgICAgICBuZXdTaXplID0gcm91bmRVcFRvTXVsdGlwbGVPZjx4TGFyZ2VB
bGlnbm1lbnQ+KG5ld1NpemUpOwogICAgICAgICAgICAgaWYgKG9sZFNpemUgLSBuZXdTaXplID49
IHhMYXJnZUFsaWdubWVudCkgewpAQCAtMTczLDYgKzE3OCwxNyBAQCB2b2lkKiBBbGxvY2F0b3I6
OnJlYWxsb2NhdGUodm9pZCogb2JqZWN0CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0OwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1NpemUgPiBvbGRTaXplKSB7
CisgICAgICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICAgICAgYm9vbCB3YXNFeHRlbmRl
ZCA9IHRyeVZNRXh0ZW5kKG9iamVjdCwgb2xkU2l6ZSwgbmV3U2l6ZSk7CisgICAgICAgICAgICBs
b2NrLmxvY2soKTsKKworICAgICAgICAgICAgaWYgKHdhc0V4dGVuZGVkKSB7CisgICAgICAgICAg
ICAgICAgcmFuZ2UgPSBSYW5nZShvYmplY3QsIG5ld1NpemUpOworICAgICAgICAgICAgICAgIHJl
dHVybiBvYmplY3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2VncmVnYXRlZEZyZWVM
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdyZWdhdGVkRnJl
ZUxpc3QuaAkocmV2aXNpb24gMTkzMzY4KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdy
ZWdhdGVkRnJlZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIEZyZWVMaXN0JiBzZWxlY3Qoc2l6ZV90KTsKIAogICAgIE93bmVyIG1fb3duZXI7Ci0g
ICAgc3RkOjphcnJheTxGcmVlTGlzdCwgMTY+IG1fZnJlZUxpc3RzOworICAgIHN0ZDo6YXJyYXk8
RnJlZUxpc3QsIDE1PiBtX2ZyZWVMaXN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIGJtYWxsb2MK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL1NpemVzLmgJKHJldmlzaW9uIDE5MzM2OCkKKysrIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBu
YW1lc3BhY2UgU2l6ZXMgewogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCB2bVBhZ2VN
YXNrID0gfih2bVBhZ2VTaXplIC0gMSk7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBz
dXBlckNodW5rU2l6ZSA9IDQgKiBNQjsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHN1cGVyQ2h1
bmtTaXplID0gMiAqIE1COwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzbWFsbE1heCA9IDI1
NjsKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNtYWxsTGluZVNpemUgPSAyNTY7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAkocmV2aXNpb24gMTkzMzY4KQorKysgU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgy
LDMwIEBAIGlubGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitpbmxpbmUgYm9vbCB0cnlWTUV4dGVuZCh2b2lkKiBwLCBzaXplX3Qg
dm1PbGRTaXplLCBzaXplX3Qgdm1OZXdTaXplKQoreworICAgIHZtVmFsaWRhdGUodm1PbGRTaXpl
KTsKKyAgICB2bVZhbGlkYXRlKHZtTmV3U2l6ZSk7CisgICAgCisgICAgaWYgKHZtT2xkU2l6ZSA+
PSB2bU5ld1NpemUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgdm9pZCogbmV4dEFkZHJl
c3MgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocCkgKyB2bU9sZFNpemU7CisgICAgc2l6ZV90IGV4dGVu
dGlvblNpemUgPSB2bU5ld1NpemUgLSB2bU9sZFNpemU7CisKKyAgICB2b2lkKiByZXN1bHQgPSBt
bWFwKG5leHRBZGRyZXNzLCBleHRlbnRpb25TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBN
QVBfUFJJVkFURSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7CisKKyAgICBpZiAocmVz
dWx0ID09IE1BUF9GQUlMRUQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChyZXN1
bHQgIT0gbmV4dEFkZHJlc3MpIHsKKyAgICAgICAgbXVubWFwKHJlc3VsdCwgZXh0ZW50aW9uU2l6
ZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGlubGluZSB2b2lkKiB2bUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm9p
ZCogcmVzdWx0ID0gdHJ5Vk1BbGxvY2F0ZSh2bVNpemUpOwo=
</data>
<flag name="review"
          id="291568"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="291569"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266553</attachid>
            <date>2015-12-03 13:31:21 -0800</date>
            <delta_ts>2015-12-03 13:45:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>151817-3.patch</filename>
            <type>text/plain</type>
            <size>4064</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MzM2OCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE1LTEyLTAzICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2M6IGV4dHJhIGxh
cmdlIGFsbG9jYXRpb25zIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBSZWR1Y2VkIHRoZSBzdXBlciBjaHVuayBz
aXplIGZyb20gNE1CIHRvIDJNQi4KKworICAgICAgICBBZGRlZCBwYXRoIHRvIHJlYWxsb2NhdGUo
KSBvZiBhbiBleHRyYSBsYXJnZSBvYmplY3QgdG8gc2VlIGlmIHdlIGNhbiBleHRlbmQgdGhlIGFs
bG9jYXRpb24uCisKKyAgICAgICAgKiBibWFsbG9jL0FsbG9jYXRvci5jcHA6CisgICAgICAgIChi
bWFsbG9jOjpBbGxvY2F0b3I6OnJlYWxsb2NhdGUpOgorICAgICAgICAqIGJtYWxsb2MvU2VncmVn
YXRlZEZyZWVMaXN0Lmg6CisgICAgICAgICogYm1hbGxvYy9TaXplcy5oOgorICAgICAgICAqIGJt
YWxsb2MvVk1BbGxvY2F0ZS5oOgorICAgICAgICAoYm1hbGxvYzo6dHJ5Vk1BbGxvY2F0ZSk6Cisg
ICAgICAgIChibWFsbG9jOjp0cnlWTUV4dGVuZCk6CisgICAgICAgIChibWFsbG9jOjp2bUFsbG9j
YXRlKToKKwogMjAxNS0xMS0xMSAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1Pgog
CiAgICAgICAgIGJtYWxsb2M6IEFkZCBsaWJkbCBkZXBlbmRlbmN5CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0FsbG9jYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9BbGxvY2F0b3IuY3BwCShyZXZpc2lvbiAxOTMzNjgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0FsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsMTEg
QEAgdm9pZCogQWxsb2NhdG9yOjpyZWFsbG9jYXRlKHZvaWQqIG9iamVjdAogICAgICAgICBSYW5n
ZSYgcmFuZ2UgPSBQZXJQcm9jZXNzPEhlYXA+OjpnZXRGYXN0Q2FzZSgpLT5maW5kWExhcmdlKGxv
Y2ssIG9iamVjdCk7CiAgICAgICAgIG9sZFNpemUgPSByYW5nZS5zaXplKCk7CiAKKyAgICAgICAg
bmV3U2l6ZSA9IHJvdW5kVXBUb011bHRpcGxlT2Y8eExhcmdlQWxpZ25tZW50PihuZXdTaXplKTsK
KworICAgICAgICBpZiAobmV3U2l6ZSA9PSBvbGRTaXplKQorICAgICAgICAgICAgcmV0dXJuIG9i
amVjdDsKKwogICAgICAgICBpZiAobmV3U2l6ZSA8IG9sZFNpemUgJiYgbmV3U2l6ZSA+IGxhcmdl
TWF4KSB7CiAgICAgICAgICAgICBuZXdTaXplID0gcm91bmRVcFRvTXVsdGlwbGVPZjx4TGFyZ2VB
bGlnbm1lbnQ+KG5ld1NpemUpOwogICAgICAgICAgICAgaWYgKG9sZFNpemUgLSBuZXdTaXplID49
IHhMYXJnZUFsaWdubWVudCkgewpAQCAtMTczLDYgKzE3OCwxNyBAQCB2b2lkKiBBbGxvY2F0b3I6
OnJlYWxsb2NhdGUodm9pZCogb2JqZWN0CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0OwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1NpemUgPiBvbGRTaXplKSB7
CisgICAgICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICAgICAgYm9vbCB3YXNFeHRlbmRl
ZCA9IHRyeVZNRXh0ZW5kKG9iamVjdCwgb2xkU2l6ZSwgbmV3U2l6ZSk7CisgICAgICAgICAgICBs
b2NrLmxvY2soKTsKKworICAgICAgICAgICAgaWYgKHdhc0V4dGVuZGVkKSB7CisgICAgICAgICAg
ICAgICAgcmFuZ2UgPSBSYW5nZShvYmplY3QsIG5ld1NpemUpOworICAgICAgICAgICAgICAgIHJl
dHVybiBvYmplY3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2VncmVnYXRlZEZyZWVM
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdyZWdhdGVkRnJl
ZUxpc3QuaAkocmV2aXNpb24gMTkzMzY4KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdy
ZWdhdGVkRnJlZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIEZyZWVMaXN0JiBzZWxlY3Qoc2l6ZV90KTsKIAogICAgIE93bmVyIG1fb3duZXI7Ci0g
ICAgc3RkOjphcnJheTxGcmVlTGlzdCwgMTY+IG1fZnJlZUxpc3RzOworICAgIHN0ZDo6YXJyYXk8
RnJlZUxpc3QsIDE1PiBtX2ZyZWVMaXN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIGJtYWxsb2MK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL1NpemVzLmgJKHJldmlzaW9uIDE5MzM2OCkKKysrIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBu
YW1lc3BhY2UgU2l6ZXMgewogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCB2bVBhZ2VN
YXNrID0gfih2bVBhZ2VTaXplIC0gMSk7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBz
dXBlckNodW5rU2l6ZSA9IDQgKiBNQjsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHN1cGVyQ2h1
bmtTaXplID0gMiAqIE1COwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzbWFsbE1heCA9IDI1
NjsKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNtYWxsTGluZVNpemUgPSAyNTY7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAkocmV2aXNpb24gMTkzMzY4KQorKysgU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgy
LDI5IEBAIGlubGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitpbmxpbmUgYm9vbCB0cnlWTUV4dGVuZCh2b2lkKiBwLCBzaXplX3Qg
dm1PbGRTaXplLCBzaXplX3Qgdm1OZXdTaXplKQoreworICAgIHZtVmFsaWRhdGUodm1PbGRTaXpl
KTsKKyAgICB2bVZhbGlkYXRlKHZtTmV3U2l6ZSk7CisgICAgCisgICAgQkFTU0VSVCh2bU9sZFNp
emUgPCB2bU5ld1NpemUpOworCisgICAgdm9pZCogbmV4dEFkZHJlc3MgPSBzdGF0aWNfY2FzdDxj
aGFyKj4ocCkgKyB2bU9sZFNpemU7CisgICAgc2l6ZV90IGV4dGVudGlvblNpemUgPSB2bU5ld1Np
emUgLSB2bU9sZFNpemU7CisKKyAgICB2b2lkKiByZXN1bHQgPSBtbWFwKG5leHRBZGRyZXNzLCBl
eHRlbnRpb25TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9B
Tk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7CisKKyAgICBpZiAocmVzdWx0ID09IE1BUF9GQUlMRUQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChyZXN1bHQgIT0gbmV4dEFkZHJlc3Mp
IHsKKyAgICAgICAgbXVubWFwKHJlc3VsdCwgZXh0ZW50aW9uU2l6ZSk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGlubGluZSB2b2lk
KiB2bUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm9pZCogcmVzdWx0ID0gdHJ5Vk1B
bGxvY2F0ZSh2bVNpemUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>