<?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>126040</bug_id>
          
          <creation_ts>2013-12-19 19:08:27 -0800</creation_ts>
          <short_desc>Add support for StoreBarrier and friends to the FTL</short_desc>
          <delta_ts>2014-01-02 16:20:29 -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>
          
          <blocked>121074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>961684</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-12-19 19:08:27 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962102</commentid>
    <comment_count>1</comment_count>
      <attachid>219808</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-12-20 16:20:54 -0800</bug_when>
    <thetext>Created attachment 219808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963934</commentid>
    <comment_count>2</comment_count>
      <attachid>219808</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-02 15:40:08 -0800</bug_when>
    <thetext>Comment on attachment 219808
Patch

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:605
&gt; +        DFG_NODE_DO_TO_CHILDREN(m_graph, m_node, speculate);

Might as well just say: speculate(m_node-&gt;child1()).  Maybe you also have to pass m_node, I don&apos;t remember the signature.

But maybe it would be even better to say:

compileStoreBarrier(lowCell(m_node-&gt;child1()));

And then have the #if ENABLE(GGC) inside compileStoreBarrier().  You can rely on lowCell() doing the right thing if the result is unused.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:612
&gt; +        compileBaseValueStoreBarrier(m_node-&gt;child1(), m_node-&gt;child2());

Does this helper buy anything?  I think you call it only here.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:614
&gt; +        DFG_NODE_DO_TO_CHILDREN(m_graph, m_node, speculate);

Might as well just say:

speculate(m_node-&gt;child1());
specualte(m_node-&gt;child2());

But see above.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:630
&gt; +        DFG_NODE_DO_TO_CHILDREN(m_graph, m_node, speculate);

See above.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4066
&gt; +    void compileStoreBarrier(LValue base, LValue value, Edge&amp; valueEdge)

Rename to emitStoreBarrier.  We use the term &quot;compileBlah&quot; to mean that Blah is a node type that we&apos;re lowering.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4083
&gt; +    void compileStoreBarrier(LValue base)

Rename to &quot;emitStoreBarrier&quot;.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4114
&gt; +    void compileBaseValueStoreBarrier(Edge&amp; baseEdge, Edge&amp; valueEdge)

You probably don&apos;t need this helper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963949</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-02 16:20:29 -0800</bug_when>
    <thetext>Committed r161240: &lt;http://trac.webkit.org/changeset/161240&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219808</attachid>
            <date>2013-12-20 16:20:54 -0800</date>
            <delta_ts>2014-01-02 15:40:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126040-20131220162045.patch</filename>
            <type>text/plain</type>
            <size>10546</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwOTQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDEzLTEyLTIwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFN0b3JlQmFycmllciBhbmQgZnJpZW5kcyB0byB0aGUg
RlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYw
NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZ0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRs
L0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xM
Vk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdG9yZUJhcnJpZXIp
OgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ29uZGl0aW9uYWxT
dG9yZUJhcnJpZXIpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
U3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjayk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmxvYWRNYXJrQnl0ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVCYXNlVmFsdWVTdG9yZUJhcnJpZXIpOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXApOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAg
ICAgICAoSlNDOjpIZWFwOjp3cml0ZUJhcnJpZXJCdWZmZXIpOgorCiAyMDEzLTEyLTE5ICBNYXJr
IEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAg
REZHIHdyaXRlIGJhcnJpZXJzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAkocmV2aXNpb24gMTYwOTE5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBG
VEwgewogCiAjZGVmaW5lIEZPUl9FQUNIX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNy
byhsZW5ndGgpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5UHJvcGVydGllcykKKyAgICBtYWNybyh0
eXBlZEFycmF5UHJvcGVydGllcykgXAorICAgIG1hY3JvKFdyaXRlQmFycmllckJ1ZmZlcl9idWZm
ZXJDb250ZW50cykKIAogI2RlZmluZSBGT1JfRUFDSF9BQlNUUkFDVF9GSUVMRChtYWNybykgXAog
ICAgIG1hY3JvKEJ1dHRlcmZseV9wdWJsaWNMZW5ndGgsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJs
aWNMZW5ndGgoKSkgXApAQCAtNTMsNiArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEZUTCB7CiAgICAgbWFjcm8oSlNTdHJpbmdfdmFsdWUsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVl
KCkpIFwKICAgICBtYWNybyhKU1ZhcmlhYmxlT2JqZWN0X3JlZ2lzdGVycywgSlNWYXJpYWJsZU9i
amVjdDo6b2Zmc2V0T2ZSZWdpc3RlcnMoKSkgXAogICAgIG1hY3JvKE1hcmtlZEFsbG9jYXRvcl9m
cmVlTGlzdEhlYWQsIE1hcmtlZEFsbG9jYXRvcjo6b2Zmc2V0T2ZGcmVlTGlzdEhlYWQoKSkgXAor
ICAgIG1hY3JvKE1hcmtlZEJsb2NrX21hcmtCaXRzLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZNYXJr
cygpKSBcCiAgICAgbWFjcm8oU3RyaW5nSW1wbF9kYXRhLCBTdHJpbmdJbXBsOjpkYXRhT2Zmc2V0
KCkpIFwKICAgICBtYWNybyhTdHJpbmdJbXBsX2hhc2hBbmRGbGFncywgU3RyaW5nSW1wbDo6Zmxh
Z3NPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6
Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE2MDkxOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYg
KzEwNiw5IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICBj
YXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OgogICAgIGNhc2UgVmFyaWFibGVXYXRjaHBvaW50Ogog
ICAgIGNhc2UgTm90aWZ5V3JpdGU6CisgICAgY2FzZSBTdG9yZUJhcnJpZXI6CisgICAgY2FzZSBD
b25kaXRpb25hbFN0b3JlQmFycmllcjoKKyAgICBjYXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hl
Y2s6CiAgICAgY2FzZSBWYWx1ZVRvSW50MzI6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBM
b2dpY2FsTm90OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bnRyaW5zaWNSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE2MDkxOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MSw2ICs3MSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhW
X0pJVE9wZXJhdGlvbl9FSkpKLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwgaW50NjQs
IGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FT1pELCBmdW5jdGlv
blR5cGUodm9pZFR5cGUsIGludFB0ciwgaW50UHRyLCBpbnQzMiwgZG91YmxlVHlwZSkpIFwKICAg
ICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FT1pKLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0
ciwgaW50UHRyLCBpbnQzMiwgaW50NjQpKSBcCisgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fRUMs
IGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oVl9K
SVRPcGVyYXRpb25fRVZ3cywgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0cikp
IFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9ELCBmdW5jdGlvblR5cGUoaW50MzIsIGRvdWJs
ZVR5cGUpKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9M
TFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTYwOTE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2OSw2ICs0Njks
MTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICBj
b21waWxlSW50NTJUb1ZhbHVlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBT
dG9yZUJhcnJpZXI6CisgICAgICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyKCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb25kaXRpb25hbFN0b3JlQmFycmllcjoKKyAgICAg
ICAgICAgIGNvbXBpbGVDb25kaXRpb25hbFN0b3JlQmFycmllcigpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjazoKKyAgICAgICAgICAg
IGNvbXBpbGVTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrKCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBGbHVzaDoKICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgICAg
IGNhc2UgU2V0QXJndW1lbnQ6CkBAIC01ODcsNiArNTk2LDQxIEBAIHByaXZhdGU6CiAgICAgICAg
IHNldEpTVmFsdWUobG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSk7CiAgICAgfQogCisgICAg
dm9pZCBjb21waWxlU3RvcmVCYXJyaWVyKCkKKyAgICB7CisjaWYgRU5BQkxFKEdHQykKKyAgICAg
ICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBjb21w
aWxlU3RvcmVCYXJyaWVyKGJhc2UpOworI2Vsc2UKKyAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJ
TERSRU4obV9ncmFwaCwgbV9ub2RlLCBzcGVjdWxhdGUpOworI2VuZGlmCisgICAgfQorCisgICAg
dm9pZCBjb21waWxlQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIoKQorICAgIHsKKyNpZiBFTkFCTEUo
R0dDKQorICAgICAgICBjb21waWxlQmFzZVZhbHVlU3RvcmVCYXJyaWVyKG1fbm9kZS0+Y2hpbGQx
KCksIG1fbm9kZS0+Y2hpbGQyKCkpOworI2Vsc2UKKyAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJ
TERSRU4obV9ncmFwaCwgbV9ub2RlLCBzcGVjdWxhdGUpOworI2VuZGlmCisgICAgfQorCisgICAg
dm9pZCBjb21waWxlU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjaygpCisgICAgeworI2lmIEVOQUJM
RShHR0MpCisgICAgICAgIExCYXNpY0Jsb2NrIGlzTm90TnVsbCA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiU3RvcmUgYmFycmllciB3aXRoIG51bGwgY2hlY2sgdmFsdWUgbm90IG51bGwiKSk7Cisg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
U3RvcmUgYmFycmllciBjb250aW51YXRpb24iKSk7CisKKyAgICAgICAgTFZhbHVlIGJhc2UgPSBs
b3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQu
aXNaZXJvNjQoYmFzZSksIGNvbnRpbnVhdGlvbiwgaXNOb3ROdWxsKTsKKyAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdE51bGwsIGNvbnRpbnVhdGlvbik7
CisgICAgICAgIGNvbXBpbGVTdG9yZUJhcnJpZXIoYmFzZSk7CisgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworI2Vsc2UKKyAgICAgICAgREZHX05PREVfRE9f
VE9fQ0hJTERSRU4obV9ncmFwaCwgbV9ub2RlLCBzcGVjdWxhdGUpOworI2VuZGlmCisgICAgfQor
CiAgICAgdm9pZCBjb21waWxlVXBzaWxvbigpCiAgICAgewogICAgICAgICBMVmFsdWUgZGVzdGlu
YXRpb24gPSBtX3BoaXMuZ2V0KG1fbm9kZS0+cGhpKCkpOwpAQCAtNDAxMSw2ICs0MDU1LDY5IEBA
IHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX2dyYXBoLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRX
YXRjaHBvaW50SXNTdGlsbFZhbGlkKG1fbm9kZS0+Y29kZU9yaWdpbik7CiAgICAgfQogICAgIAor
ICAgIExWYWx1ZSBsb2FkTWFya0J5dGUoTFZhbHVlIGJhc2UpCisgICAgeworICAgICAgICBMVmFs
dWUgbWFya2VkQmxvY2sgPSBtX291dC5iaXRBbmQoYmFzZSwgbV9vdXQuY29uc3RJbnQ2NChNYXJr
ZWRCbG9jazo6YmxvY2tNYXNrKSk7CisgICAgICAgIExWYWx1ZSBiYXNlT2Zmc2V0ID0gbV9vdXQu
Yml0QW5kKGJhc2UsIG1fb3V0LmNvbnN0SW50NjQofk1hcmtlZEJsb2NrOjpibG9ja01hc2spKTsK
KyAgICAgICAgTFZhbHVlIG1hcmtCeXRlSW5kZXggPSBtX291dC5sU2hyKGJhc2VPZmZzZXQsIG1f
b3V0LmNvbnN0SW50NjQoTWFya2VkQmxvY2s6OmF0b21TaGlmdEFtb3VudCArIE1hcmtlZEJsb2Nr
OjptYXJrQnl0ZVNoaWZ0QW1vdW50KSk7CisgICAgICAgIHJldHVybiBtX291dC5sb2FkOChtX291
dC5iYXNlSW5kZXgobV9oZWFwcy5NYXJrZWRCbG9ja19tYXJrQml0cywgbWFya2VkQmxvY2ssIG1h
cmtCeXRlSW5kZXgsIFNjYWxlT25lLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZNYXJrcygpKSk7Cisg
ICAgfQorCisgICAgdm9pZCBjb21waWxlU3RvcmVCYXJyaWVyKExWYWx1ZSBiYXNlLCBMVmFsdWUg
dmFsdWUsIEVkZ2UmIHZhbHVlRWRnZSkKKyAgICB7CisgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RvcmUgYmFycmllciBjb250aW51YXRp
b24iKSk7CisgICAgICAgIExCYXNpY0Jsb2NrIGlzQ2VsbCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiU3RvcmUgYmFycmllciBpcyBjZWxsIGJsb2NrIikpOworCisgICAgICAgIGlmIChtX3N0YXRl
LmZvck5vZGUodmFsdWVFZGdlLm5vZGUoKSkuY291bGRCZVR5cGUoU3BlY0NlbGwpKQorICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKGlzTm90Q2VsbCh2YWx1ZSksIGNvbnRpbnVhdGlvbiwgaXNDZWxs
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9vdXQuanVtcChpc0NlbGwpOworCisgICAg
ICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNDZWxsLCBjb250aW51
YXRpb24pOworICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyKGJhc2UpOworICAgICAgICBtX291
dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0
aW9uLCBsYXN0TmV4dCk7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlU3RvcmVCYXJyaWVyKExW
YWx1ZSBiYXNlKQorICAgIHsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRM
X05FV19CTE9DSyhtX291dCwgKCJTdG9yZSBiYXJyaWVyIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAg
ICAgTEJhc2ljQmxvY2sgaXNNYXJrZWQgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlN0b3JlIGJh
cnJpZXIgaXMgbWFya2VkIGJsb2NrIikpOworICAgICAgICBMQmFzaWNCbG9jayBidWZmZXJIYXNT
cGFjZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RvcmUgYmFycmllciBidWZmZXIgaXMgZnVs
bCIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgYnVmZmVySXNGdWxsID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJTdG9yZSBiYXJyaWVyIGJ1ZmZlciBpcyBmdWxsIikpOworCisgICAgICAgIC8vIENo
ZWNrIHRoZSBtYXJrIGJ5dGUuIAorICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvOChs
b2FkTWFya0J5dGUoYmFzZSkpLCBjb250aW51YXRpb24sIGlzTWFya2VkKTsKKworICAgICAgICAv
LyBBcHBlbmQgdG8gdGhlIHdyaXRlIGJhcnJpZXIgYnVmZmVyLgorICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzTWFya2VkLCBidWZmZXJIYXNTcGFjZSk7Cisg
ICAgICAgIExWYWx1ZSBjdXJyZW50QnVmZmVySW5kZXggPSBtX291dC5sb2FkMzIobV9vdXQuYWJz
b2x1dGUoJnZtKCkuaGVhcC53cml0ZUJhcnJpZXJCdWZmZXIoKS5tX2N1cnJlbnRJbmRleCkpOwor
ICAgICAgICBMVmFsdWUgYnVmZmVyQ2FwYWNpdHkgPSBtX291dC5sb2FkMzIobV9vdXQuYWJzb2x1
dGUoJnZtKCkuaGVhcC53cml0ZUJhcnJpZXJCdWZmZXIoKS5tX2NhcGFjaXR5KSk7CisgICAgICAg
IG1fb3V0LmJyYW5jaChtX291dC5sZXNzVGhhbihjdXJyZW50QnVmZmVySW5kZXgsIGJ1ZmZlckNh
cGFjaXR5KSwgYnVmZmVySGFzU3BhY2UsIGJ1ZmZlcklzRnVsbCk7CisKKyAgICAgICAgLy8gQnVm
ZmVyIGhhcyBzcGFjZSwgc3RvcmUgdG8gaXQuCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJ1ZmZl
ckhhc1NwYWNlLCBidWZmZXJJc0Z1bGwpOworICAgICAgICBMVmFsdWUgd3JpdGVCYXJyaWVyQnVm
ZmVyQmFzZSA9IG1fb3V0LmxvYWRQdHIobV9vdXQuYWJzb2x1dGUoJnZtKCkuaGVhcC53cml0ZUJh
cnJpZXJCdWZmZXIoKS5tX2J1ZmZlcikpOworICAgICAgICBtX291dC5zdG9yZVB0cihiYXNlLCBt
X291dC5iYXNlSW5kZXgobV9oZWFwcy5Xcml0ZUJhcnJpZXJCdWZmZXJfYnVmZmVyQ29udGVudHMs
IHdyaXRlQmFycmllckJ1ZmZlckJhc2UsIG1fb3V0Lnplcm9FeHQoY3VycmVudEJ1ZmZlckluZGV4
LCBtX291dC5pbnRQdHIpLCBTY2FsZVB0cikpOworICAgICAgICBtX291dC5zdG9yZTMyKG1fb3V0
LmFkZChjdXJyZW50QnVmZmVySW5kZXgsIG1fb3V0LmNvbnN0SW50MzIoMSkpLCBtX291dC5hYnNv
bHV0ZSgmdm0oKS5oZWFwLndyaXRlQmFycmllckJ1ZmZlcigpLm1fY3VycmVudEluZGV4KSk7Cisg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICAvLyBCdWZmZXIgaXMg
b3V0IG9mIHNwYWNlLCBmbHVzaCBpdC4KKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oYnVmZmVySXNG
dWxsLCBjb250aW51YXRpb24pOworICAgICAgICB2bUNhbGwobV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvbkZsdXNoV3JpdGVCYXJyaWVyQnVmZmVyKSwgbV9jYWxsRnJhbWUsIGJhc2UpOworICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29u
dGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlQmFzZVZhbHVl
U3RvcmVCYXJyaWVyKEVkZ2UmIGJhc2VFZGdlLCBFZGdlJiB2YWx1ZUVkZ2UpCisgICAgeworICAg
ICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwoYmFzZUVkZ2UpOworICAgICAgICBMVmFsdWUgdmFs
dWUgPSBsb3dKU1ZhbHVlKHZhbHVlRWRnZSk7CisgICAgICAgIGNvbXBpbGVTdG9yZUJhcnJpZXIo
YmFzZSwgdmFsdWUsIHZhbHVlRWRnZSk7CisgICAgfQorCiAgICAgZW51bSBFeGNlcHRpb25DaGVj
a01vZGUgeyBOb0V4Y2VwdGlvbnMsIENoZWNrRXhjZXB0aW9ucyB9OwogICAgIAogICAgIExWYWx1
ZSB2bUNhbGwoTFZhbHVlIGZ1bmN0aW9uLCBFeGNlcHRpb25DaGVja01vZGUgbW9kZSA9IENoZWNr
RXhjZXB0aW9ucykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lv
biAxNjA5MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjY5LDkgKzI2OSw3IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBo
ZWFwVHlwZSkKICAgICAsIG1fY29weVZpc2l0b3IobV9zaGFyZWREYXRhKQogICAgICwgbV9oYW5k
bGVTZXQodm0pCiAgICAgLCBtX2lzU2FmZVRvQ29sbGVjdChmYWxzZSkKLSNpZiBFTkFCTEUoR0dD
KQogICAgICwgbV93cml0ZUJhcnJpZXJCdWZmZXIoMTI4KQotI2VuZGlmCiAgICAgLCBtX3ZtKHZt
KQogICAgICwgbV9sYXN0R0NMZW5ndGgoMCkKICAgICAsIG1fbGFzdENvZGVEaXNjYXJkVGltZShX
VEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAkocmV2aXNpb24gMTYwOTE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsOSArMTAwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHdyaXRlQmFycmllcihjb25zdCBKU0NlbGwqLCBKU0Nl
bGwqKTsKICAgICAgICAgc3RhdGljIHVpbnQ4X3QqIGFkZHJlc3NPZkNhcmRGb3IoSlNDZWxsKik7
CiAKLSNpZiBFTkFCTEUoR0dDKQogICAgICAgICBXcml0ZUJhcnJpZXJCdWZmZXImIHdyaXRlQmFy
cmllckJ1ZmZlcigpIHsgcmV0dXJuIG1fd3JpdGVCYXJyaWVyQnVmZmVyOyB9Ci0jZW5kaWYKICAg
ICAgICAgdm9pZCBmbHVzaFdyaXRlQmFycmllckJ1ZmZlcihKU0NlbGwqKTsKIAogICAgICAgICBI
ZWFwKFZNKiwgSGVhcFR5cGUpOwpAQCAtMjkyLDkgKzI5MCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAKICAgICAgICAgYm9vbCBtX2lzU2FmZVRvQ29sbGVjdDsKIAotI2lmIEVOQUJMRShH
R0MpCiAgICAgICAgIFdyaXRlQmFycmllckJ1ZmZlciBtX3dyaXRlQmFycmllckJ1ZmZlcjsKLSNl
bmRpZgogCiAgICAgICAgIFZNKiBtX3ZtOwogICAgICAgICBkb3VibGUgbV9sYXN0R0NMZW5ndGg7
Cg==
</data>
<flag name="review"
          id="243471"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>