<?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>135011</bug_id>
          
          <creation_ts>2014-07-16 23:32:42 -0700</creation_ts>
          <short_desc>CSS JIT: Clean up return path</short_desc>
          <delta_ts>2014-07-17 00:58:55 -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>CSS</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>134835</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1022972</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-07-16 23:32:42 -0700</bug_when>
    <thetext>Before adding early return path for PseudoElement, we need to simplify the existing return path in CSS JIT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022973</commentid>
    <comment_count>1</comment_count>
      <attachid>235054</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-07-16 23:33:54 -0700</bug_when>
    <thetext>Created attachment 235054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022977</commentid>
    <comment_count>2</comment_count>
      <attachid>235054</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-16 23:49:12 -0700</bug_when>
    <thetext>Comment on attachment 235054
Patch

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

This looks correct to me.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:1193
&gt; +    StackAllocator::StackReference baselineStackReference;

I think &quot;baseline&quot; is a little too generic for the name. One could think it is the top of the stack for this function.

What about startOfDiscardableStack, temporaryStackBase, ... or something like that?

&gt; Source/WebCore/cssjit/StackAllocator.h:156
&gt; +    void popAndDiscardUpToBaseline()
&gt; +    {
&gt; +        if (!m_offsetFromTop)
&gt; +            return;
&gt; +        m_assembler.addPtr(JSC::MacroAssembler::TrustedImm32(m_offsetFromTop), JSC::MacroAssembler::stackPointerRegister);
&gt; +        m_offsetFromTop = 0;
&gt; +    }
&gt; +

This is unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022978</commentid>
    <comment_count>3</comment_count>
      <attachid>235054</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-07-16 23:58:22 -0700</bug_when>
    <thetext>Comment on attachment 235054
Patch

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

Thank you for your comments. They are reasonable. I&apos;ll reflect your comments and land it :)

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:1193
&gt;&gt; +    StackAllocator::StackReference baselineStackReference;
&gt; 
&gt; I think &quot;baseline&quot; is a little too generic for the name. One could think it is the top of the stack for this function.
&gt; 
&gt; What about startOfDiscardableStack, temporaryStackBase, ... or something like that?

Right. `temporaryStackBase` looks suitable for me :) I&apos;ll change it.

&gt;&gt; Source/WebCore/cssjit/StackAllocator.h:156
&gt;&gt; +
&gt; 
&gt; This is unused.

Oops! Thank you, removing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022980</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-07-17 00:58:55 -0700</bug_when>
    <thetext>Committed r171177: &lt;http://trac.webkit.org/changeset/171177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235054</attachid>
            <date>2014-07-16 23:33:54 -0700</date>
            <delta_ts>2014-07-16 23:58:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135011-20140717153540.patch</filename>
            <type>text/plain</type>
            <size>7638</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE2YThmMjRhMmY1Nzdi
MGIwM2ZiNDMxYzFhOGRmY2ZlYzIxMWQ3MC4uYzg1ZTY1MzlkYTQxZDBmY2ZmNWEzN2JlYzI2ZmZi
ZTA4MjM4Mzk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA3LTE2ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IENs
ZWFuIHVwIHJldHVybiBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzUwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDbGVhbiB1cCB0aGUgZXhpc3RpbmcgQ1NTIEpJVCByZXR1cm4gcGF0aCBiZWZv
cmUgYWRkaW5nIG5ldyBlYXJseSByZXR1cm4gcGF0aAorICAgICAgICBmb3IgcHNldWRvIGVsZW1l
bnRzLgorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0
ZVNlbGVjdG9yQ2hlY2tlcik6CisgICAgICAgICogY3Nzaml0L1N0YWNrQWxsb2NhdG9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2U6OlN0YWNrUmVm
ZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0YWNrQWxsb2NhdG9yOjpTdGFja1JlZmVyZW5j
ZTo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpTdGFja0FsbG9jYXRvcjo6cG9wQW5kRGlz
Y2FyZFVwVG9CYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpTdGFja0FsbG9jYXRvcjo6cG9w
QW5kRGlzY2FyZCk6IERlbGV0ZWQuCisKIDIwMTQtMDctMTUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgQ1NTOiBHZW5lcmFsaXplIENTUyBGaXJzdCBM
ZXR0ZXIgdHJlYXRtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0
b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5j
cHAKaW5kZXggMmUyOWI5YTQxMzNhMjk0ZTNjMzc2OGMyYzM3MTMyOTRiZDdhMWYxNy4uM2IyMzhh
MDYwNWQyOWFjNGEzNmM3NmM3MmQ2OGMwZTY1YzIwN2VhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtMTE5MCwxMiArMTE5MCwyMCBAQCB2b2lkIFNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogCiAgICAgbV9y
ZWdpc3RlckFsbG9jYXRvci5hbGxvY2F0ZVJlZ2lzdGVyKGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIp
OwogCisgICAgU3RhY2tBbGxvY2F0b3I6OlN0YWNrUmVmZXJlbmNlIGJhc2VsaW5lU3RhY2tSZWZl
cmVuY2U7CisKICAgICBpZiAobV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KQogICAgICAgICBtX2NoZWNraW5nQ29udGV4dFN0
YWNrUmVmZXJlbmNlID0gbV9zdGFja0FsbG9jYXRvci5wdXNoKGNoZWNraW5nQ29udGV4dFJlZ2lz
dGVyKTsKIAogICAgIGlmIChtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCkKICAgICAg
ICAgbV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0ID0gbV9zdGFja0FsbG9jYXRvci5hbGxvY2F0
ZVVuaW5pdGlhbGl6ZWQoKTsKIAorICAgIC8vIFJlbWVtYmVyIHRoZSBiYXNlbGluZSBvZiB0aGUg
c3RhY2suCisgICAgaWYgKG1fY2hlY2tpbmdDb250ZXh0U3RhY2tSZWZlcmVuY2UuaXNWYWxpZCgp
KQorICAgICAgICBiYXNlbGluZVN0YWNrUmVmZXJlbmNlID0gbV9jaGVja2luZ0NvbnRleHRTdGFj
a1JlZmVyZW5jZTsKKyAgICBlbHNlIGlmIChtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFy
dCkKKyAgICAgICAgYmFzZWxpbmVTdGFja1JlZmVyZW5jZSA9IG1fYWRqYWNlbnRCYWNrdHJhY2tp
bmdTdGFydDsKKwogICAgIEFzc2VtYmxlcjo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgpOyArK2kp
IHsKQEAgLTEyMjMsNyArMTIzMSw4IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5l
cmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiAgICAgbV9yZWdpc3RlckFsbG9jYXRvci5kZWFsbG9jYXRl
UmVnaXN0ZXIoZWxlbWVudEFkZHJlc3NSZWdpc3Rlcik7CiAKICAgICBpZiAobV9mdW5jdGlvblR5
cGUgPT0gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgaWYg
KCFtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCAmJiAhcmVzZXJ2ZWRDYWxsZWVTYXZl
ZFJlZ2lzdGVycyAmJiAhbmVlZHNFcGlsb2d1ZSkgeworICAgICAgICBpZiAoIWJhc2VsaW5lU3Rh
Y2tSZWZlcmVuY2UuaXNWYWxpZCgpICYmICFyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzICYm
ICFuZWVkc0VwaWxvZ3VlKSB7CisgICAgICAgICAgICBBU1NFUlQoIW1fbmVlZHNBZGphY2VudEJh
Y2t0cmFja2luZ1N0YXJ0KTsKICAgICAgICAgICAgIC8vIFN1Y2Nlc3MuCiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCByZXR1cm5SZWdpc3Rl
cik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKQEAgLTEyMzQsNDcgKzEyNDMsMjgg
QEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkK
ICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDApLCByZXR1cm5SZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIucmV0KCk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBTdWNjZXNz
LgotICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigx
KSwgcmV0dXJuUmVnaXN0ZXIpOwotCi0gICAgICAgICAgICAvLyBGYWlsdXJlLgotICAgICAgICAg
ICAgaWYgKCFmYWlsdXJlQ2FzZXMuZW1wdHkoKSkgewotICAgICAgICAgICAgICAgIEFzc2VtYmxl
cjo6SnVtcCBza2lwRmFpbHVyZUNhc2UgPSBtX2Fzc2VtYmxlci5qdW1wKCk7Ci0gICAgICAgICAg
ICAgICAgZmFpbHVyZUNhc2VzLmxpbmsoJm1fYXNzZW1ibGVyKTsKLSAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rl
cik7Ci0gICAgICAgICAgICAgICAgc2tpcEZhaWx1cmVDYXNlLmxpbmsoJm1fYXNzZW1ibGVyKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1fbmVlZHNBZGphY2VudEJhY2t0cmFj
a2luZ1N0YXJ0KQotICAgICAgICAgICAgICAgIG1fc3RhY2tBbGxvY2F0b3IucG9wQW5kRGlzY2Fy
ZFVwVG8obV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKLSAgICAgICAgICAgIGlmIChyZXNl
cnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKQotICAgICAgICAgICAgICAgIG1fc3RhY2tBbGxvY2F0
b3IucG9wKGNhbGxlZVNhdmVkUmVnaXN0ZXJTdGFja1JlZmVyZW5jZXMsIG1fcmVnaXN0ZXJBbGxv
Y2F0b3IucmVzdG9yZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKCkpOwotICAgICAgICAgICAgaWYgKG5l
ZWRzRXBpbG9ndWUpCi0gICAgICAgICAgICAgICAgZ2VuZXJhdGVFcGlsb2d1ZSgpOwotICAgICAg
ICAgICAgbV9hc3NlbWJsZXIucmV0KCk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQobV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25U
eXBlOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLQotICAgICAgICAvLyBT
dWNjZXNzLgotICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDEpLCByZXR1cm5SZWdpc3Rlcik7CisgICAgfQogCi0gICAgICAgIC8vIEZhaWx1cmUuCi0gICAg
ICAgIGlmICghZmFpbHVyZUNhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgIEFzc2VtYmxlcjo6
SnVtcCBza2lwRmFpbHVyZUNhc2UgPSBtX2Fzc2VtYmxlci5qdW1wKCk7Ci0gICAgICAgICAgICBm
YWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOwotICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwotICAgICAg
ICAgICAgc2tpcEZhaWx1cmVDYXNlLmxpbmsoJm1fYXNzZW1ibGVyKTsKLSAgICAgICAgfQorICAg
IC8vIFN1Y2Nlc3MuCisgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigxKSwgcmV0dXJuUmVnaXN0ZXIpOwogCi0gICAgICAgIG1fc3RhY2tBbGxvY2F0b3IucG9wQW5k
RGlzY2FyZFVwVG8obV9jaGVja2luZ0NvbnRleHRTdGFja1JlZmVyZW5jZSk7Ci0gICAgICAgIGlm
IChyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKQotICAgICAgICAgICAgbV9zdGFja0FsbG9j
YXRvci5wb3AoY2FsbGVlU2F2ZWRSZWdpc3RlclN0YWNrUmVmZXJlbmNlcywgbV9yZWdpc3RlckFs
bG9jYXRvci5yZXN0b3JlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoKSk7Ci0gICAgICAgIGlmIChuZWVk
c0VwaWxvZ3VlKQotICAgICAgICAgICAgZ2VuZXJhdGVFcGlsb2d1ZSgpOwotICAgICAgICBtX2Fz
c2VtYmxlci5yZXQoKTsKKyAgICAvLyBGYWlsdXJlLgorICAgIGlmICghZmFpbHVyZUNhc2VzLmVt
cHR5KCkpIHsKKyAgICAgICAgQXNzZW1ibGVyOjpKdW1wIHNraXBGYWlsdXJlQ2FzZSA9IG1fYXNz
ZW1ibGVyLmp1bXAoKTsKKyAgICAgICAgZmFpbHVyZUNhc2VzLmxpbmsoJm1fYXNzZW1ibGVyKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKSwgcmV0
dXJuUmVnaXN0ZXIpOworICAgICAgICBza2lwRmFpbHVyZUNhc2UubGluaygmbV9hc3NlbWJsZXIp
OwogICAgIH0KKworICAgIGlmIChiYXNlbGluZVN0YWNrUmVmZXJlbmNlLmlzVmFsaWQoKSkKKyAg
ICAgICAgbV9zdGFja0FsbG9jYXRvci5wb3BBbmREaXNjYXJkVXBUbyhiYXNlbGluZVN0YWNrUmVm
ZXJlbmNlKTsKKyAgICBpZiAocmVzZXJ2ZWRDYWxsZWVTYXZlZFJlZ2lzdGVycykKKyAgICAgICAg
bV9zdGFja0FsbG9jYXRvci5wb3AoY2FsbGVlU2F2ZWRSZWdpc3RlclN0YWNrUmVmZXJlbmNlcywg
bV9yZWdpc3RlckFsbG9jYXRvci5yZXN0b3JlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoKSk7CisgICAg
aWYgKG5lZWRzRXBpbG9ndWUpCisgICAgICAgIGdlbmVyYXRlRXBpbG9ndWUoKTsKKyAgICBtX2Fz
c2VtYmxlci5yZXQoKTsKIH0KIAogc3RhdGljIGlubGluZSBBc3NlbWJsZXI6Okp1bXAgdGVzdElz
RWxlbWVudEZsYWdPbk5vZGUoQXNzZW1ibGVyOjpSZXN1bHRDb25kaXRpb24gY29uZGl0aW9uLCBB
c3NlbWJsZXImIGFzc2VtYmxlciwgQXNzZW1ibGVyOjpSZWdpc3RlcklEIG5vZGVBZGRyZXNzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1N0YWNrQWxsb2NhdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tBbGxvY2F0b3IuaAppbmRleCBiMWUxY2RmYWQxYjZkZjEz
ZjcxN2FlNGY3Y2NhNjBkMGJiNWJlNmZkLi43OWVhMzdmMjFhNzViZmM1MGFkMTVhY2FhMjc2MDMw
ZDRlYWMzZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tBbGxvY2F0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tBbGxvY2F0b3IuaApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAiUmVnaXN0ZXJBbGxvY2F0b3IuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9NYWNyb0Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPGxpbWl0cz4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCwxMiArMzksMTMgQEAgY2xhc3MgU3RhY2tBbGxvY2F0
b3IgewogICAgIGNsYXNzIFN0YWNrUmVmZXJlbmNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFN0
YWNrUmVmZXJlbmNlKCkKLSAgICAgICAgICAgIDogbV9vZmZzZXRGcm9tVG9wKC0xKQorICAgICAg
ICAgICAgOiBtX29mZnNldEZyb21Ub3Aoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpKQogICAgICAgICB7IH0KICAgICAgICAgZXhwbGljaXQgU3RhY2tSZWZlcmVuY2UodW5zaWdu
ZWQgb2Zmc2V0KQogICAgICAgICAgICAgOiBtX29mZnNldEZyb21Ub3Aob2Zmc2V0KQogICAgICAg
ICB7IH0KICAgICAgICAgb3BlcmF0b3IgdW5zaWduZWQoKSBjb25zdCB7IHJldHVybiBtX29mZnNl
dEZyb21Ub3A7IH0KKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9vZmZz
ZXRGcm9tVG9wICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsgfQogICAg
IHByaXZhdGU6CiAgICAgICAgIHVuc2lnbmVkIG1fb2Zmc2V0RnJvbVRvcDsKICAgICB9OwpAQCAt
MTM0LDEzICsxMzYsNiBAQCBjbGFzcyBTdGFja0FsbG9jYXRvciB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLnBvcFRvUmVzdG9yZShyZWdpc3RlcklEKTsKICAgICB9CiAKLSAgICB2b2lkIHBvcEFuZERp
c2NhcmQoU3RhY2tSZWZlcmVuY2Ugc3RhY2tSZWZlcmVuY2UpCi0gICAgewotICAgICAgICBSRUxF
QVNFX0FTU0VSVChzdGFja1JlZmVyZW5jZSA9PSBtX29mZnNldEZyb21Ub3ApOwotICAgICAgICBt
X2Fzc2VtYmxlci5hZGRQdHIoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0YWNr
VW5pdEluQnl0ZXMoKSksIEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKLSAgICAgICAgbV9vZmZzZXRGcm9tVG9wIC09IHN0YWNrVW5pdEluQnl0ZXMoKTsKLSAgICB9
Ci0KICAgICB2b2lkIHBvcEFuZERpc2NhcmRVcFRvKFN0YWNrUmVmZXJlbmNlIHN0YWNrUmVmZXJl
bmNlKQogICAgIHsKICAgICAgICAgdW5zaWduZWQgcG9zaXRpb25CZWZvcmVTdGFja1JlZmVyZW5j
ZSA9IHN0YWNrUmVmZXJlbmNlIC0gc3RhY2tVbml0SW5CeXRlcygpOwpAQCAtMTUxLDYgKzE0Niwx
NCBAQCBjbGFzcyBTdGFja0FsbG9jYXRvciB7CiAgICAgICAgIG1fb2Zmc2V0RnJvbVRvcCAtPSBz
dGFja0RlbHRhOwogICAgIH0KIAorICAgIHZvaWQgcG9wQW5kRGlzY2FyZFVwVG9CYXNlbGluZSgp
CisgICAgeworICAgICAgICBpZiAoIW1fb2Zmc2V0RnJvbVRvcCkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkUHRyKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMihtX29mZnNldEZyb21Ub3ApLCBKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisgICAgICAgIG1fb2Zmc2V0RnJvbVRvcCA9IDA7CisgICAgfQorCiAgICAg
dm9pZCBhbGlnblN0YWNrUHJlRnVuY3Rpb25DYWxsKCkKICAgICB7CiAjaWYgQ1BVKFg4Nl82NCkK
</data>
<flag name="review"
          id="259595"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="259597"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>