<?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>163343</bug_id>
          
          <creation_ts>2016-10-12 11:15:41 -0700</creation_ts>
          <short_desc>The blackening of CellState is a bad way of tracking if the object is being marked for the first time</short_desc>
          <delta_ts>2016-10-12 16:59:39 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>149432</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</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>1239367</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 11:15:41 -0700</bug_when>
    <thetext>I think we need to revert the CellState change in https://trac.webkit.org/changeset/206344.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239437</commentid>
    <comment_count>1</comment_count>
      <attachid>291385</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 12:53:07 -0700</bug_when>
    <thetext>Created attachment 291385
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239439</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-12 12:56:05 -0700</bug_when>
    <thetext>Attachment 291385 did not pass style-queue:


ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:217:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 10 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>1239446</commentid>
    <comment_count>3</comment_count>
      <attachid>291385</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 13:07:23 -0700</bug_when>
    <thetext>Comment on attachment 291385
the patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        new way better: instead of the SlotVisitor rememering the state-before-blackening, we would

typo: /rememering/remembering/

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        Subsequent visits will know that they are not the first. So, we will fail to do the right

/will know/will think/?

&gt; Source/JavaScriptCore/heap/CellState.h:33
&gt; +    // The object is either currently being scanned (anthracite) or it has finished being scalled

typo: /scalled/scanned/

&gt; Source/JavaScriptCore/heap/SlotVisitor.cpp:300
&gt; +    // There is no race here - the cell state cannot change right now.
&gt; +    ASSERT(m_oldCellState == CellState::OldGrey || m_oldCellState == CellState::NewGrey);

Please explain why the cell state cannot change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239447</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 13:09:06 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 291385 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291385&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:13
&gt; &gt; +        new way better: instead of the SlotVisitor rememering the state-before-blackening, we would
&gt; 
&gt; typo: /rememering/remembering/
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:19
&gt; &gt; +        Subsequent visits will know that they are not the first. So, we will fail to do the right
&gt; 
&gt; /will know/will think/?
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/CellState.h:33
&gt; &gt; +    // The object is either currently being scanned (anthracite) or it has finished being scalled
&gt; 
&gt; typo: /scalled/scanned/
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/SlotVisitor.cpp:300
&gt; &gt; +    // There is no race here - the cell state cannot change right now.
&gt; &gt; +    ASSERT(m_oldCellState == CellState::OldGrey || m_oldCellState == CellState::NewGrey);
&gt; 
&gt; Please explain why the cell state cannot change.

All fixed.  Now to run all debug tests to make sure I didn&apos;t add wrong asserts...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239587</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 16:59:39 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/207263</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291385</attachid>
            <date>2016-10-12 12:53:07 -0700</date>
            <delta_ts>2016-10-12 13:07:23 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12747</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MjM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDE2LTEwLTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIGJsYWNrZW5pbmcgb2YgQ2VsbFN0YXRlIGlzIGEgYmFkIHdheSBvZiB0cmFja2luZyBpZiB0
aGUgb2JqZWN0IGlzIGJlaW5nIG1hcmtlZCBmb3IgdGhlIGZpcnN0IHRpbWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzM0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2hlbiBJIGZpcnN0
IGFkZGVkIHRoZSBjb25jZXB0IG9mIE5ld0dyZXkvT2xkR3JleSwgSSBoYWQgdGhlIFNsb3RWaXNp
dG9yIHN0b3JlIHRoZSBvbGQgY2VsbAorICAgICAgICBzdGF0ZSBpbiBpdHNlbGYsIHNvIHRoYXQg
aXQgY291bGQgdXNlIGl0IHRvIGRlY2lkZSB3aGF0IHRvIGRvIGZvciByZXBvcnRFeHRyYU1lbW9y
eVZpc2l0ZWQoKS4KKyAgICAgICAgCisgICAgICAgIFRoZW4gSSBjaGFuZ2VkIGl0IGluIGEgcmVj
ZW50IGNvbW1pdCwgYmVjYXVzZSBJIHdhbnRlZCB0aGUgZnJlZWRvbSB0byBoYXZlIFNsb3RWaXNp
dG9yIHZpc2l0CisgICAgICAgIG11bHRpcGxlIG9iamVjdHMgaW4gdGFuZGVtLiBCdXQgSSBuZXZl
ciBlbmRlZCB1cCB1c2luZyB0aGlzIGNhcGFiaWxpdHkuIFN0aWxsLCBJIGxpa2VkIHRoZQorICAg
ICAgICBuZXcgd2F5IGJldHRlcjogaW5zdGVhZCBvZiB0aGUgU2xvdFZpc2l0b3IgcmVtZW1lcmlu
ZyB0aGUgc3RhdGUtYmVmb3JlLWJsYWNrZW5pbmcsIHdlIHdvdWxkCisgICAgICAgIG1ha2UgdGhl
IG9iamVjdCdzIHN0YXRlIHJlZmxlY3Qgd2hldGhlciBpdCB3YXMgYmxhY2sgZm9yIHRoZSBmaXJz
dCB0aW1lIG9yIG5vdC4gVGhhdCBzZWVtZWQKKyAgICAgICAgY29udmVuaWVudC4KKyAgICAgICAg
CisgICAgICAgIFVuZm9ydHVuYXRlbHkgaXQncyB3cm9uZy4gQWZ0ZXIgd2UgYmxhY2tlbiB0aGUg
b2JqZWN0LCBhIGNvbmN1cnJlbnQgYmFycmllciBjb3VsZCBpbnN0YW50bHkKKyAgICAgICAgZ3Jl
eSBpdC4gVGhlbiB3ZSB3b3VsZCBmb3JnZXQgdGhhdCB3ZSBhcmUgdmlzaXRpbmcgdGhpcyBvYmpl
Y3QgZm9yIHRoZSBmaXJzdCB0aW1lLgorICAgICAgICBTdWJzZXF1ZW50IHZpc2l0cyB3aWxsIGtu
b3cgdGhhdCB0aGV5IGFyZSBub3QgdGhlIGZpcnN0LiBTbywgd2Ugd2lsbCBmYWlsIHRvIGRvIHRo
ZSByaWdodAorICAgICAgICB0aGluZyBpbiByZXBvcnRFeHRyYU1lbW9yeVZpc2l0ZWQoKS4KKyAg
ICAgICAgCisgICAgICAgIFNvLCB0aGlzIHJldmVydHMgdGhhdCBjaGFuZ2UuIFRoaXMgaXMgYSBs
aXR0bGUgbW9yZSB0aGFuIGp1c3QgYSByZXZlcnQsIHRob3VnaC4gSSd2ZSBjaGFuZ2VkCisgICAg
ICAgIHRoZSB0ZXJtaW5vbG9neSBhIGJpdC4gRm9yIGV4YW1wbGUsIEkgZ290IHRpcmVkIG9mIHJl
YWRpbmcgQmxhY2sgYW5kIGhhdmluZyB0byByZW1pbmQgbXlzZWxmCisgICAgICAgIHRoYXQgaXQg
cmVhbGx5IG1lYW5zIHRoYXQgdGhlIG9iamVjdCBoYXMgYmVndW4gYmVpbmcgdmlzaXRlZCwgaW5z
dGVhZCBvZiB0aGUgbW9yZSBzdHJpY3QKKyAgICAgICAgbWVhbmluZyB0aGF0IGltcGxpZXMgdGhh
dCBpdCBoYXMgYWxyZWFkeSBiZWVuIHZpc2l0ZWQuIFdlIHdhbnQgdG8gc2F5IHRoYXQgaXQncyBC
bGFjayBvcgorICAgICAgICBjdXJyZW50bHkgYmVpbmcgc2Nhbm5lZC4gSSdtIGdvaW5nIHRvIGFk
b3B0IFNpZWJlcnQncyB0ZXJtIGZvciB0aGlzOiBBbnRocmFjaXRlIFsxXS4gU28sIG91cgorICAg
ICAgICBibGFjayBDZWxsU3RhdGUgaXMgbm93IGNhbGxlZCBBbnRocmFjaXRlT3JCbGFjay4KKyAg
ICAgICAgCisgICAgICAgIFsxXSBodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy83YWU0
LzYzMzI2NWFlYWQxZjg4MzVjZjc5NjZlMTc5ZDAyYzJjOGE0Yi5wZGYKKworICAgICAgICAqIGhl
YXAvQ2VsbFN0YXRlLmg6CisgICAgICAgIChKU0M6OmlzQmxhY2spOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpibGFja2VuKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAg
ICAgICAoSlNDOjpIZWFwOjphZGRUb1JlbWVtYmVyZWRTZXQpOgorICAgICAgICAoSlNDOjpIZWFw
Ojp3cml0ZUJhcnJpZXJTbG93UGF0aCk6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAg
ICogaGVhcC9IZWFwSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpIZWFwOjpyZXBvcnRFeHRyYU1l
bW9yeVZpc2l0ZWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpyZXBvcnRFeHRlcm5hbE1lbW9yeVZp
c2l0ZWQpOgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpT
bG90VmlzaXRvcjo6YXBwZW5kVG9NYXJrU3RhY2spOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRv
cjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5oOgorICAgICAg
ICAqIGhlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9y
OjpyZXBvcnRFeHRyYU1lbW9yeVZpc2l0ZWQpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6
cmVwb3J0RXh0ZXJuYWxNZW1vcnlWaXNpdGVkKToKKyAgICAgICAgKiBsbGludC9MTEludERhdGEu
Y3BwOgorICAgICAgICAoSlNDOjpMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMpOgorICAg
ICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorCiAyMDE2LTEwLTEyICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBub24t
ZnVuY3Rpb24sIG5vbi11bmRlZmluZWQgY29tcGFyYXRvciBpbiBBcnJheS5wcm90b3R5cGUuc29y
dApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbFN0YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbFN0YXRlLmgJKHJldmlzaW9uIDIw
NzIzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxTdGF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCwyOCArMzAsMjcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBlbnVtIGNsYXNz
IENlbGxTdGF0ZSA6IHVpbnQ4X3QgewotICAgIC8vIFRoZSBvYmplY3QgaXMgYmxhY2sgZm9yIHRo
ZSBmaXJzdCB0aW1lIGR1cmluZyB0aGlzIEdDLgotICAgIE5ld0JsYWNrID0gMCwKLSAgICAKLSAg
ICAvLyBUaGUgb2JqZWN0IGlzIGJsYWNrIGZvciB0aGUgTnRoIHRpbWUgZHVyaW5nIHRoaXMgZnVs
bCBHQyBjeWNsZSAoTiA+IDEpLiBBbiBvYmplY3QgbWF5IGdldCB0bwotICAgIC8vIHRoaXMgc3Rh
dGUgaWYgaXQgdHJhbnNpdGlvbnMgZnJvbSBibGFjayBiYWNrIHRvIGdyZXkgZHVyaW5nIGEgY29u
Y3VycmVudCBHQywgb3IgYmVjYXVzZSBpdAotICAgIC8vIHdvdW5kIHVwIGluIHRoZSByZW1lbWJl
cmVkIHNldCBiZWNhdXNlIG9mIGEgZ2VuZXJhdGlvbmFsIGJhcnJpZXIuCi0gICAgT2xkQmxhY2sg
PSAxLAorICAgIC8vIFRoZSBvYmplY3QgaXMgZWl0aGVyIGN1cnJlbnRseSBiZWluZyBzY2FubmVk
IChhbnRocmFjaXRlKSBvciBpdCBoYXMgZmluaXNoZWQgYmVpbmcgc2NhbGxlZAorICAgIC8vIChi
bGFjaykuIEl0IGNvdWxkIGJlIHNjYW5uZWQgZm9yIHRoZSBmaXJzdCB0aW1lIHRoaXMgR0MsIG9y
IHRoZSBOdGggdGltZSAtIGlmIGl0J3MgYW50aHJhY2l0ZQorICAgIC8vIHRoZW4gdGhlIFNsb3RW
aXNpdG9yIGtub3dzLiBXZSBleHBsaWNpdGx5IHNheSAiYW50aHJhY2l0ZSBvciBibGFjayIgdG8g
ZW1waGFzaXplIHRoZSBmYWN0IHRoYXQKKyAgICAvLyB0aGlzIGlzIG5vIGd1YXJhbnRlZSB0aGF0
IHdlIGhhdmUgZmluaXNoZWQgc2Nhbm5pbmcgdGhlIG9iamVjdCwgdW5sZXNzIHlvdSBhbHNvIGtu
b3cgdGhhdCBhbGwKKyAgICAvLyBTbG90VmlzaXRvcnMgYXJlIGRvbmUuCisgICAgQW50aHJhY2l0
ZU9yQmxhY2sgPSAwLAogICAgIAogICAgIC8vIFRoZSBvYmplY3QgaXMgaW4gZWRlbi4gRHVyaW5n
IEdDLCB0aGlzIG1lYW5zIHRoYXQgdGhlIG9iamVjdCBoYXMgbm90IGJlZW4gbWFya2VkIHlldC4K
LSAgICBOZXdXaGl0ZSA9IDIsCisgICAgTmV3V2hpdGUgPSAxLAogCiAgICAgLy8gVGhlIG9iamVj
dCBpcyBncmV5IC0gaS5lLiBpdCB3aWxsIGJlIHNjYW5uZWQgLSBhbmQgdGhpcyBpcyB0aGUgZmly
c3QgdGltZSBpbiB0aGlzIEdDIHRoYXQgd2UgYXJlCiAgICAgLy8gZ29pbmcgdG8gc2NhbiBpdC4g
SWYgdGhpcyBpcyBhbiBlZGVuIEdDLCB0aGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgb2JqZWN0IGlz
IGluIGVkZW4uCi0gICAgTmV3R3JleSA9IDMsCisgICAgTmV3R3JleSA9IDIsCiAKICAgICAvLyBU
aGUgb2JqZWN0IGlzIGdyZXkgLSBpLmUuIGl0IHdpbGwgYmUgc2Nhbm5lZCAtIGJ1dCBpdCBlaXRo
ZXIgYmVsb25ncyB0byBvbGQgZ2VuIChpZiB0aGlzIGlzIGVkZW4KICAgICAvLyBHQykgb3IgaXQg
aXMgZ3JleSBhIHNlY29uZCB0aW1lIGluIHRoaXMgY3VycmVudCBHQyAoYmVjYXVzZSBhIGNvbmN1
cnJlbnQgc3RvcmUgYmFycmllciByZXF1ZXN0ZWQKICAgICAvLyByZS1ncmV5aW5nKS4KLSAgICBP
bGRHcmV5ID0gNAorICAgIE9sZEdyZXkgPSAzCiB9OwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQg
YmxhY2tUaHJlc2hvbGQgPSAxOyAvLyB4IDw9IGJsYWNrVGhyZXNob2xkIG1lYW5zIHggaXMgYmxh
Y2suCitzdGF0aWMgY29uc3QgdW5zaWduZWQgYmxhY2tUaHJlc2hvbGQgPSAwOyAvLyB4IDw9IGJs
YWNrVGhyZXNob2xkIG1lYW5zIHggaXMgQW50aHJhY2l0ZU9yQmxhY2suCiBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdGF1dG9sb2dpY2FsVGhyZXNob2xkID0gMTAwOyAvLyB4IDw9IHRhdXRvbG9naWNh
bFRocmVzaG9sZCBpcyBhbHdheXMgdHJ1ZS4KIAogaW5saW5lIGJvb2wgaXNXaXRoaW5UaHJlc2hv
bGQoQ2VsbFN0YXRlIGNlbGxTdGF0ZSwgdW5zaWduZWQgdGhyZXNob2xkKQpAQCAtNTksMTcgKzU4
LDQgQEAgaW5saW5lIGJvb2wgaXNXaXRoaW5UaHJlc2hvbGQoQ2VsbFN0YXRlIAogICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2VsbFN0YXRlKSA8PSB0aHJlc2hvbGQ7CiB9CiAKLWlu
bGluZSBib29sIGlzQmxhY2soQ2VsbFN0YXRlIGNlbGxTdGF0ZSkKLXsKLSAgICByZXR1cm4gaXNX
aXRoaW5UaHJlc2hvbGQoY2VsbFN0YXRlLCBibGFja1RocmVzaG9sZCk7Ci19Ci0KLWlubGluZSBD
ZWxsU3RhdGUgYmxhY2tlbihDZWxsU3RhdGUgY2VsbFN0YXRlKQotewotICAgIGlmIChjZWxsU3Rh
dGUgPT0gQ2VsbFN0YXRlOjpOZXdHcmV5KQotICAgICAgICByZXR1cm4gQ2VsbFN0YXRlOjpOZXdC
bGFjazsKLSAgICBBU1NFUlQoY2VsbFN0YXRlID09IENlbGxTdGF0ZTo6TmV3QmxhY2sgfHwgY2Vs
bFN0YXRlID09IENlbGxTdGF0ZTo6T2xkQmxhY2sgfHwgY2VsbFN0YXRlID09IENlbGxTdGF0ZTo6
T2xkR3JleSk7Ci0gICAgcmV0dXJuIENlbGxTdGF0ZTo6T2xkQmxhY2s7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDIwNzIzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MTYsNyArOTE2LDcgQEAgdm9pZCBIZWFwOjphZGRUb1JlbWVtYmVyZWRTZXQo
Y29uc3QgSlNDZQogewogICAgIEFTU0VSVChjZWxsKTsKICAgICBBU1NFUlQoIU9wdGlvbnM6OnVz
ZUNvbmN1cnJlbnRKSVQoKSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKLSAgICBBU1NFUlQo
aXNCbGFjayhjZWxsLT5jZWxsU3RhdGUoKSkpOworICAgIEFTU0VSVChjZWxsLT5jZWxsU3RhdGUo
KSA9PSBDZWxsU3RhdGU6OkFudGhyYWNpdGVPckJsYWNrKTsKICAgICAvLyBJbmRpY2F0ZSB0aGF0
IHRoaXMgb2JqZWN0IGlzIGdyZXkgYW5kIHRoYXQgaXQncyBvbmUgb2YgdGhlIGZvbGxvd2luZzoK
ICAgICAvLyAtIEEgcmUtZ3JleWVkIG9iamVjdCBkdXJpbmcgYSBjb25jdXJyZW50IGNvbGxlY3Rp
b24uCiAgICAgLy8gLSBBbiBvbGQgcmVtZW1iZXJlZCBvYmplY3QuCkBAIC0xNTUyLDcgKzE1NTIs
NyBAQCB2b2lkIEhlYXA6OndyaXRlQmFycmllclNsb3dQYXRoKGNvbnN0IEpTCiAgICAgICAgIC8v
IEluIHRoaXMgY2FzZSwgdGhlIGJhcnJpZXJUaHJlc2hvbGQgaXMgdGhlIHRhdXRvbG9naWNhbCB0
aHJlc2hvbGQsIHNvIGZyb20gY291bGQgc3RpbGwgYmUKICAgICAgICAgLy8gbm90IGJsYWNrLiBC
dXQgd2UgY2FuJ3Qga25vdyBmb3Igc3VyZSB1bnRpbCB3ZSBmaXJlIG9mZiBhIGZlbmNlLgogICAg
ICAgICBXVEY6OnN0b3JlTG9hZEZlbmNlKCk7Ci0gICAgICAgIGlmICghaXNCbGFjayhmcm9tLT5j
ZWxsU3RhdGUoKSkpCisgICAgICAgIGlmIChmcm9tLT5jZWxsU3RhdGUoKSAhPSBDZWxsU3RhdGU6
OkFudGhyYWNpdGVPckJsYWNrKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDIwNzIzMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDExICsx
ODEsMTEgQEAgcHVibGljOgogICAgIC8vIGNhbGwgYm90aCBvZiB0aGVzZSBmdW5jdGlvbnM6IENh
bGxpbmcgb25seSBvbmUgbWF5IHRyaWdnZXIgY2F0YXN0cm9waWMKICAgICAvLyBtZW1vcnkgZ3Jv
d3RoLgogICAgIHZvaWQgcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoc2l6ZV90KTsKLSAgICB2
b2lkIHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZChKU0NlbGwqLCBzaXplX3QpOworICAgIHZvaWQg
cmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKENlbGxTdGF0ZSBvbGRTdGF0ZSwgc2l6ZV90KTsKIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKICAgICAvLyBVc2UgdGhpcyBBUEkgdG8gcmVwb3J0
IHRoZSBzdWJzZXQgb2YgZXh0cmEgbWVtb3J5IHRoYXQgbGl2ZXMgb3V0c2lkZSB0aGlzIHByb2Nl
c3MuCi0gICAgdm9pZCByZXBvcnRFeHRlcm5hbE1lbW9yeVZpc2l0ZWQoSlNDZWxsKiwgc2l6ZV90
KTsKKyAgICB2b2lkIHJlcG9ydEV4dGVybmFsTWVtb3J5VmlzaXRlZChDZWxsU3RhdGUgb2xkU3Rh
dGUsIHNpemVfdCk7CiAgICAgc2l6ZV90IGV4dGVybmFsTWVtb3J5U2l6ZSgpIHsgcmV0dXJuIG1f
ZXh0ZXJuYWxNZW1vcnlTaXplOyB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwSW5saW5lcy5oCShyZXZpc2lvbiAyMDcyMzApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsMTAgKzE1
OCwxMCBAQCBpbmxpbmUgdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUFsbG9jCiAgICAgICAg
IHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkU2xvd0Nhc2Uoc2l6ZSk7CiB9CiAKLWlubGluZSB2
b2lkIEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZChKU0NlbGwqIGNlbGwsIHNpemVfdCBz
aXplKQoraW5saW5lIHZvaWQgSGVhcDo6cmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKENlbGxTdGF0
ZSBvbGRTdGF0ZSwgc2l6ZV90IHNpemUpCiB7CiAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBkb3Vi
bGUtY291bnQgdGhlIGV4dHJhIG1lbW9yeSB0aGF0IHdhcyByZXBvcnRlZCBpbiBwcmV2aW91cyBj
b2xsZWN0aW9ucy4KLSAgICBpZiAob3BlcmF0aW9uSW5Qcm9ncmVzcygpID09IEVkZW5Db2xsZWN0
aW9uICYmIGNlbGwtPmNlbGxTdGF0ZSgpID09IENlbGxTdGF0ZTo6T2xkQmxhY2spCisgICAgaWYg
KG9wZXJhdGlvbkluUHJvZ3Jlc3MoKSA9PSBFZGVuQ29sbGVjdGlvbiAmJiBvbGRTdGF0ZSA9PSBD
ZWxsU3RhdGU6Ok9sZEdyZXkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNpemVfdCogY291bnRl
ciA9ICZtX2V4dHJhTWVtb3J5U2l6ZTsKQEAgLTE3NCwxMCArMTc0LDEwIEBAIGlubGluZSB2b2lk
IEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5VmlzaXQKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9V
U0FHRSkKLWlubGluZSB2b2lkIEhlYXA6OnJlcG9ydEV4dGVybmFsTWVtb3J5VmlzaXRlZChKU0Nl
bGwqIGNlbGwsIHNpemVfdCBzaXplKQoraW5saW5lIHZvaWQgSGVhcDo6cmVwb3J0RXh0ZXJuYWxN
ZW1vcnlWaXNpdGVkKENlbGxTdGF0ZSBvbGRTdGF0ZSwgc2l6ZV90IHNpemUpCiB7CiAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBkb3VibGUtY291bnQgdGhlIGV4dGVybmFsIG1lbW9yeSB0aGF0IHdh
cyByZXBvcnRlZCBpbiBwcmV2aW91cyBjb2xsZWN0aW9ucy4KLSAgICBpZiAob3BlcmF0aW9uSW5Q
cm9ncmVzcygpID09IEVkZW5Db2xsZWN0aW9uICYmIGNlbGwtPmNlbGxTdGF0ZSgpID09IENlbGxT
dGF0ZTo6T2xkQmxhY2spCisgICAgaWYgKG9wZXJhdGlvbkluUHJvZ3Jlc3MoKSA9PSBFZGVuQ29s
bGVjdGlvbiAmJiBvbGRTdGF0ZSA9PSBDZWxsU3RhdGU6Ok9sZEdyZXkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIHNpemVfdCogY291bnRlciA9ICZtX2V4dGVybmFsTWVtb3J5U2l6ZTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDIw
NzIzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjI4LDYgKzIyOCw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90Vmlz
aXRvcjo6YXBwZW5kVG8KIHsKICAgICBBU1NFUlQoSGVhcDo6aXNNYXJrZWRDb25jdXJyZW50bHko
Y2VsbCkpOwogICAgIEFTU0VSVCghY2VsbC0+aXNaYXBwZWQoKSk7CisgICAgQVNTRVJUKGNlbGwt
PmNlbGxTdGF0ZSgpID09IENlbGxTdGF0ZTo6TmV3R3JleSB8fCBjZWxsLT5jZWxsU3RhdGUoKSA9
PSBDZWxsU3RhdGU6Ok9sZEdyZXkpOwogICAgIAogICAgIGNvbnRhaW5lci5ub3RlTWFya2VkKCk7
CiAgICAgCkBAIC0yOTMsNyArMjk0LDEyIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRv
cjo6dmlzaXRDaGkKICAgICAKICAgICBTZXRDdXJyZW50Q2VsbFNjb3BlIGN1cnJlbnRDZWxsU2Nv
cGUoKnRoaXMsIGNlbGwpOwogICAgIAotICAgIGNlbGwtPnNldENlbGxTdGF0ZShibGFja2VuKGNl
bGwtPmNlbGxTdGF0ZSgpKSk7CisgICAgbV9vbGRDZWxsU3RhdGUgPSBjZWxsLT5jZWxsU3RhdGUo
KTsKKyAgICAKKyAgICAvLyBUaGVyZSBpcyBubyByYWNlIGhlcmUgLSB0aGUgY2VsbCBzdGF0ZSBj
YW5ub3QgY2hhbmdlIHJpZ2h0IG5vdy4KKyAgICBBU1NFUlQobV9vbGRDZWxsU3RhdGUgPT0gQ2Vs
bFN0YXRlOjpPbGRHcmV5IHx8IG1fb2xkQ2VsbFN0YXRlID09IENlbGxTdGF0ZTo6TmV3R3JleSk7
CisgICAgCisgICAgY2VsbC0+c2V0Q2VsbFN0YXRlKENlbGxTdGF0ZTo6QW50aHJhY2l0ZU9yQmxh
Y2spOwogICAgIAogICAgIFdURjo6c3RvcmVMb2FkRmVuY2UoKTsKICAgICAKQEAgLTMxOCw3ICsz
MjQsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OnZpc2l0Q2hpCiAgICAgfQog
ICAgIAogICAgIGlmIChVTkxJS0VMWShtX2hlYXBTbmFwc2hvdEJ1aWxkZXIpKSB7Ci0gICAgICAg
IGlmIChjZWxsLT5jZWxsU3RhdGUoKSAhPSBDZWxsU3RhdGU6Ok9sZEJsYWNrKQorICAgICAgICBp
ZiAobV9vbGRDZWxsU3RhdGUgPT0gQ2VsbFN0YXRlOjpOZXdHcmV5KQogICAgICAgICAgICAgbV9o
ZWFwU25hcHNob3RCdWlsZGVyLT5hcHBlbmROb2RlKGNvbnN0X2Nhc3Q8SlNDZWxsKj4oY2VsbCkp
OwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3Iu
aAkocmV2aXNpb24gMjA3MjMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZp
c2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBIZWFwU25hcHNob3RCdWlsZGVyKiBtX2hlYXBTbmFwc2hvdEJ1aWxkZXIgeyBudWxscHRyIH07
CiAgICAgSlNDZWxsKiBtX2N1cnJlbnRDZWxsIHsgbnVsbHB0ciB9OworICAgIENlbGxTdGF0ZSBt
X29sZENlbGxTdGF0ZTsKIAogcHVibGljOgogI2lmICFBU1NFUlRfRElTQUJMRUQKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oCShyZXZp
c2lvbiAyMDcyMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDEzICsxMDUsMTMgQEAgaW5saW5lIHZvaWQg
U2xvdFZpc2l0b3I6OmFkZFVuY29uZGl0aW9uYQogCiBpbmxpbmUgdm9pZCBTbG90VmlzaXRvcjo6
cmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKHNpemVfdCBzaXplKQogewotICAgIGhlYXAoKS0+cmVw
b3J0RXh0cmFNZW1vcnlWaXNpdGVkKG1fY3VycmVudENlbGwsIHNpemUpOworICAgIGhlYXAoKS0+
cmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkKG1fb2xkQ2VsbFN0YXRlLCBzaXplKTsKIH0KIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjpyZXBvcnRF
eHRlcm5hbE1lbW9yeVZpc2l0ZWQoc2l6ZV90IHNpemUpCiB7Ci0gICAgaGVhcCgpLT5yZXBvcnRF
eHRlcm5hbE1lbW9yeVZpc2l0ZWQobV9jdXJyZW50Q2VsbCwgc2l6ZSk7CisgICAgaGVhcCgpLT5y
ZXBvcnRFeHRlcm5hbE1lbW9yeVZpc2l0ZWQobV9vbGRDZWxsU3RhdGUsIHNpemUpOwogfQogI2Vu
ZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCShy
ZXZpc2lvbiAyMDcyMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgRGF0YTo6cGVyZm9y
bUFzc2VydGlvbnMoVk0mIHZtKQogICAgIFNUQVRJQ19BU1NFUlQoR2V0UHV0SW5mbzo6aW5pdGlh
bGl6YXRpb25CaXRzID09IDB4ZmZjMDApOwogCiAgICAgU1RBVElDX0FTU0VSVChNYXJrZWRCbG9j
azo6YmxvY2tTaXplID09IDE2ICogMTAyNCk7Ci0gICAgU1RBVElDX0FTU0VSVChibGFja1RocmVz
aG9sZCA9PSAxKTsKKyAgICBTVEFUSUNfQVNTRVJUKGJsYWNrVGhyZXNob2xkID09IDApOwogCiAg
ICAgQVNTRVJUKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KFNoYWRvd0NoaWNrZW46OlBhY2tldDo6
dGFpbE1hcmtlcigpKSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDB4N2ExMSkpOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCShyZXZpc2lvbiAyMDcyMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTQwOSw3ICs0MDksNyBA
QCBjb25zdCBOb3RJbml0aWFsaXphdGlvbiA9IDIKIGNvbnN0IE1hcmtlZEJsb2NrU2l6ZSA9IDE2
ICogMTAyNAogY29uc3QgTWFya2VkQmxvY2tNYXNrID0gfihNYXJrZWRCbG9ja1NpemUgLSAxKQog
Ci1jb25zdCBCbGFja1RocmVzaG9sZCA9IDEKK2NvbnN0IEJsYWNrVGhyZXNob2xkID0gMAogCiAj
IEFsbG9jYXRpb24gY29uc3RhbnRzCiBpZiBKU1ZBTFVFNjQK
</data>
<flag name="review"
          id="314526"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>