<?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>21803</bug_id>
          
          <creation_ts>2008-10-22 10:50:27 -0700</creation_ts>
          <short_desc>Fuse op_jfalse with op_eq_null and op_neq_null</short_desc>
          <delta_ts>2008-10-22 14:07:01 -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>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>20813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96196</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-22 10:50:27 -0700</bug_when>
    <thetext>Branches of the form

if (a == null) ...

and

if (a != null) ...

are common on the V8 Richards benchmark. We should create new opcodes that fuse these instructions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96217</commentid>
    <comment_count>1</comment_count>
      <attachid>24568</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-22 13:24:17 -0700</bug_when>
    <thetext>Created attachment 24568
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96223</commentid>
    <comment_count>2</comment_count>
      <attachid>24568</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-10-22 13:55:13 -0700</bug_when>
    <thetext>Comment on attachment 24568
Proposed patch

 3054         /* jneq_null cond(r) target(offset)
 3036         /* jeq_null cond(r) target(offset)

Let&apos;s call &quot;cond&quot; &quot;src&quot;, like you suggested.

Seems like we might get a little speedup out of experimenting with the asm a little, but this looks good.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96224</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-22 14:07:01 -0700</bug_when>
    <thetext>Landed in r37789.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24568</attachid>
            <date>2008-10-22 13:24:17 -0700</date>
            <delta_ts>2008-10-22 13:55:13 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>null.diff</filename>
            <type>text/plain</type>
            <size>9343</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3Nzg1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMDgtMTAt
MjIgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTgwMzogRnVzZSBvcF9qZmFs
c2Ugd2l0aCBvcF9lcV9udWxsIGFuZCBvcF9uZXFfbnVsbAorICAgICAgICA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODAzPgorCisgICAgICAgIEZ1c2Ugb3BfamZh
bHNlIHdpdGggb3BfZXFfbnVsbCBhbmQgb3BfbmVxX251bGwgdG8gbWFrZSB0aGUgbmV3IG9wY29k
ZXMKKyAgICAgICAgb3BfamVxX251bGwgYW5kIG9wX2puZXFfbnVsbC4KKworICAgICAgICBUaGlz
IGlzIGEgMi42JSBzcGVlZHVwIG9uIHRoZSBWOCBSYXl0cmFjZSBiZW5jaG1hcmssIGFuZCBzdHJh
bmdlbHkgYWxzbworICAgICAgICBhIDQuNyUgc3BlZWR1cCBvbiB0aGUgVjggQXJndW1lbnRzIGJl
bmNobWFyaywgZXZlbiB0aG91Z2ggaXQgdXNlcworICAgICAgICBuZWl0aGVyIG9mIHRoZSB0d28g
bmV3IG9wY29kZXMuCisKKyAgICAgICAgKiBWTS9DVEkuY3BwOgorICAgICAgICAoSlNDOjpDVEk6
OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAqIFZNL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcCk6CisgICAgICAgICogVk0vQ29kZUdlbmVyYXRv
ci5jcHA6CisgICAgICAgIChKU0M6OkNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZUcnVlKToKKyAg
ICAgICAgKEpTQzo6Q29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZhbHNlKToKKyAgICAgICAgKiBW
TS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUpOgor
ICAgICAgICAqIFZNL09wY29kZS5oOgorCiAyMDA4LTEwLTIyICBEYXJpbiBGaXNoZXIgIDxkYXJp
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4
OiBWTS9DVEkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NUSS5jcHAJKHJldmlzaW9uIDM3Nzg1KQor
KysgVk0vQ1RJLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3NCw2ICsxNTc0LDY2IEBAIHZvaWQg
Q1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGkgKz0gMzsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9OworICAgICAgICBjYXNlIG9wX2plcV9udWxsOiB7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBzcmMgPSBpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kOwor
ICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFu
ZDsKKworICAgICAgICAgICAgZW1pdEdldEFyZyhzcmMsIFg4Njo6ZWF4KTsKKyAgICAgICAgICAg
IG1faml0LnRlc3RsX2kzMnIoSlNJbW1lZGlhdGU6OlRhZ01hc2ssIFg4Njo6ZWF4KTsKKyAgICAg
ICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGlzSW1tZWRpYXRlID0gbV9qaXQuZW1pdFVubGlu
a2VkSm56KCk7CisKKyAgICAgICAgICAgIG1faml0Lm1vdmxfbXIoT0JKRUNUX09GRlNFVChKU0Nl
bGwsIG1fc3RydWN0dXJlSUQpLCBYODY6OmVheCwgWDg2OjplY3gpOworICAgICAgICAgICAgbV9q
aXQudGVzdGxfaTMybShNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBPQkpFQ1RfT0ZGU0VUKFN0cnVj
dHVyZUlELCBtX3R5cGVJbmZvLm1fZmxhZ3MpLCBYODY6OmVjeCk7CisgICAgICAgICAgICBtX2pp
dC5zZXRuel9yKFg4Njo6ZWF4KTsKKworICAgICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMg
d2FzTm90SW1tZWRpYXRlID0gbV9qaXQuZW1pdFVubGlua2VkSm1wKCk7CisKKyAgICAgICAgICAg
IG1faml0LmxpbmsoaXNJbW1lZGlhdGUsIG1faml0LmxhYmVsKCkpOworCisgICAgICAgICAgICBt
X2ppdC5tb3ZsX2kzMnIofkpTSW1tZWRpYXRlOjpFeHRlbmRlZFRhZ0JpdFVuZGVmaW5lZCwgWDg2
OjplY3gpOworICAgICAgICAgICAgbV9qaXQuYW5kbF9ycihYODY6OmVheCwgWDg2OjplY3gpOwor
ICAgICAgICAgICAgbV9qaXQuY21wbF9pMzJyKEpTSW1tZWRpYXRlOjpGdWxsVGFnVHlwZU51bGws
IFg4Njo6ZWN4KTsKKyAgICAgICAgICAgIG1faml0LnNldGVfcihYODY6OmVheCk7CisKKyAgICAg
ICAgICAgIG1faml0Lmxpbmsod2FzTm90SW1tZWRpYXRlLCBtX2ppdC5sYWJlbCgpKTsKKworICAg
ICAgICAgICAgbV9qaXQubW92emJsX3JyKFg4Njo6ZWF4LCBYODY6OmVheCk7CisgICAgICAgICAg
ICBtX2ppdC5jbXBsX2kzMnIoMCwgWDg2OjplYXgpOworICAgICAgICAgICAgbV9qbXBUYWJsZS5h
cHBlbmQoSm1wVGFibGUobV9qaXQuZW1pdFVubGlua2VkSm56KCksIGkgKyAyICsgdGFyZ2V0KSk7
ICAgICAgICAgICAgCisKKyAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9OworICAgICAgICBjYXNlIG9wX2puZXFfbnVsbDogeworICAgICAgICAgICAgdW5z
aWduZWQgc3JjID0gaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIHVu
c2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQ7CisKKyAgICAgICAg
ICAgIGVtaXRHZXRBcmcoc3JjLCBYODY6OmVheCk7CisgICAgICAgICAgICBtX2ppdC50ZXN0bF9p
MzJyKEpTSW1tZWRpYXRlOjpUYWdNYXNrLCBYODY6OmVheCk7CisgICAgICAgICAgICBYODZBc3Nl
bWJsZXI6OkptcFNyYyBpc0ltbWVkaWF0ZSA9IG1faml0LmVtaXRVbmxpbmtlZEpueigpOworCisg
ICAgICAgICAgICBtX2ppdC5tb3ZsX21yKE9CSkVDVF9PRkZTRVQoSlNDZWxsLCBtX3N0cnVjdHVy
ZUlEKSwgWDg2OjplYXgsIFg4Njo6ZWN4KTsKKyAgICAgICAgICAgIG1faml0LnRlc3RsX2kzMm0o
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgT0JKRUNUX09GRlNFVChTdHJ1Y3R1cmVJRCwgbV90eXBl
SW5mby5tX2ZsYWdzKSwgWDg2OjplY3gpOworICAgICAgICAgICAgbV9qaXQuc2V0el9yKFg4Njo6
ZWF4KTsKKworICAgICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgd2FzTm90SW1tZWRpYXRl
ID0gbV9qaXQuZW1pdFVubGlua2VkSm1wKCk7CisKKyAgICAgICAgICAgIG1faml0LmxpbmsoaXNJ
bW1lZGlhdGUsIG1faml0LmxhYmVsKCkpOworCisgICAgICAgICAgICBtX2ppdC5tb3ZsX2kzMnIo
fkpTSW1tZWRpYXRlOjpFeHRlbmRlZFRhZ0JpdFVuZGVmaW5lZCwgWDg2OjplY3gpOworICAgICAg
ICAgICAgbV9qaXQuYW5kbF9ycihYODY6OmVheCwgWDg2OjplY3gpOworICAgICAgICAgICAgbV9q
aXQuY21wbF9pMzJyKEpTSW1tZWRpYXRlOjpGdWxsVGFnVHlwZU51bGwsIFg4Njo6ZWN4KTsKKyAg
ICAgICAgICAgIG1faml0LnNldG5lX3IoWDg2OjplYXgpOworCisgICAgICAgICAgICBtX2ppdC5s
aW5rKHdhc05vdEltbWVkaWF0ZSwgbV9qaXQubGFiZWwoKSk7CisKKyAgICAgICAgICAgIG1faml0
Lm1vdnpibF9ycihYODY6OmVheCwgWDg2OjplYXgpOworICAgICAgICAgICAgbV9qaXQuY21wbF9p
MzJyKDAsIFg4Njo6ZWF4KTsKKyAgICAgICAgICAgIG1fam1wVGFibGUuYXBwZW5kKEptcFRhYmxl
KG1faml0LmVtaXRVbmxpbmtlZEpueigpLCBpICsgMiArIHRhcmdldCkpOyAgICAgICAgICAgIAor
CisgICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX3Bvc3RfaW5jOiB7CiAgICAgICAgICAgICBpbnQgc3JjRHN0ID0gaW5zdHJ1
Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIGVtaXRHZXRBcmcoc3JjRHN0LCBY
ODY6OmVheCk7CkluZGV4OiBWTS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NvZGVC
bG9jay5jcHAJKHJldmlzaW9uIDM3Nzg1KQorKysgVk0vQ29kZUJsb2NrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzM3LDYgKzczNywxNCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcChFeGVjU3RhdGUq
IGV4ZWMsIGNvCiAgICAgICAgICAgICBwcmludENvbmRpdGlvbmFsSnVtcChiZWdpbiwgaXQsIGxv
Y2F0aW9uLCAiamZhbHNlIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAg
ICBjYXNlIG9wX2plcV9udWxsOiB7CisgICAgICAgICAgICBwcmludENvbmRpdGlvbmFsSnVtcChi
ZWdpbiwgaXQsIGxvY2F0aW9uLCAiamVxX251bGwiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGNhc2Ugb3Bfam5lcV9udWxsOiB7CisgICAgICAgICAgICBwcmludENv
bmRpdGlvbmFsSnVtcChiZWdpbiwgaXQsIGxvY2F0aW9uLCAiam5lcV9udWxsIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2pubGVzczogewogICAgICAg
ICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAo
KytpdCktPnUub3BlcmFuZDsKSW5kZXg6IFZNL0NvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFZNL0NvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAzNzc4NSkKKysrIFZNL0NvZGVHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDYsNiArNTQ2LDMyIEBAIFBhc3NSZWZQdHI8
TGFiZWxJRD4gQ29kZUdlbmVyYXRvcjo6ZW1pdEoKICAgICAgICAgICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZCh0YXJnZXQtPm9mZnNldEZyb20oaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CiAgICAg
ICAgICAgICByZXR1cm4gdGFyZ2V0OwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChtX2xhc3RP
cGNvZGVJRCA9PSBvcF9lcV9udWxsICYmIHRhcmdldC0+aXNGb3J3YXJkTGFiZWwoKSkgeworICAg
ICAgICBpbnQgZHN0SW5kZXg7CisgICAgICAgIGludCBzcmNJbmRleDsKKworICAgICAgICByZXRy
aWV2ZUxhc3RVbmFyeU9wKGRzdEluZGV4LCBzcmNJbmRleCk7CisKKyAgICAgICAgaWYgKGNvbmQt
PmluZGV4KCkgPT0gZHN0SW5kZXggJiYgY29uZC0+aXNUZW1wb3JhcnkoKSAmJiAhY29uZC0+cmVm
Q291bnQoKSkgeworICAgICAgICAgICAgcmV3aW5kVW5hcnlPcCgpOworICAgICAgICAgICAgZW1p
dE9wY29kZShvcF9qZXFfbnVsbCk7CisgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
c3JjSW5kZXgpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRhcmdldC0+b2Zm
c2V0RnJvbShpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKKyAgICAgICAgICAgIHJldHVybiB0YXJn
ZXQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX25lcV9u
dWxsICYmIHRhcmdldC0+aXNGb3J3YXJkTGFiZWwoKSkgeworICAgICAgICBpbnQgZHN0SW5kZXg7
CisgICAgICAgIGludCBzcmNJbmRleDsKKworICAgICAgICByZXRyaWV2ZUxhc3RVbmFyeU9wKGRz
dEluZGV4LCBzcmNJbmRleCk7CisKKyAgICAgICAgaWYgKGNvbmQtPmluZGV4KCkgPT0gZHN0SW5k
ZXggJiYgY29uZC0+aXNUZW1wb3JhcnkoKSAmJiAhY29uZC0+cmVmQ291bnQoKSkgeworICAgICAg
ICAgICAgcmV3aW5kVW5hcnlPcCgpOworICAgICAgICAgICAgZW1pdE9wY29kZShvcF9qbmVxX251
bGwpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyY0luZGV4KTsKKyAgICAg
ICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPm9mZnNldEZyb20oaW5zdHJ1Y3Rp
b25zKCkuc2l6ZSgpKSk7CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgICAgICB9CiAg
ICAgfQogCiAgICAgZW1pdE9wY29kZSh0YXJnZXQtPmlzRm9yd2FyZExhYmVsKCkgPyBvcF9qdHJ1
ZSA6IG9wX2xvb3BfaWZfdHJ1ZSk7CkBAIC01ODUsNyArNjExLDMzIEBAIFBhc3NSZWZQdHI8TGFi
ZWxJRD4gQ29kZUdlbmVyYXRvcjo6ZW1pdEoKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFw
cGVuZChzcmNJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0
LT5vZmZzZXRGcm9tKGluc3RydWN0aW9ucygpLnNpemUoKSkpOwogICAgICAgICAgICAgcmV0dXJu
IHRhcmdldDsKLSAgICAgICAgfSAgICAgICAgCisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1f
bGFzdE9wY29kZUlEID09IG9wX2VxX251bGwpIHsKKyAgICAgICAgaW50IGRzdEluZGV4OworICAg
ICAgICBpbnQgc3JjSW5kZXg7CisKKyAgICAgICAgcmV0cmlldmVMYXN0VW5hcnlPcChkc3RJbmRl
eCwgc3JjSW5kZXgpOworCisgICAgICAgIGlmIChjb25kLT5pbmRleCgpID09IGRzdEluZGV4ICYm
IGNvbmQtPmlzVGVtcG9yYXJ5KCkgJiYgIWNvbmQtPnJlZkNvdW50KCkpIHsKKyAgICAgICAgICAg
IHJld2luZFVuYXJ5T3AoKTsKKyAgICAgICAgICAgIGVtaXRPcGNvZGUob3Bfam5lcV9udWxsKTsK
KyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmNJbmRleCk7CisgICAgICAgICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LT5vZmZzZXRGcm9tKGluc3RydWN0aW9ucygp
LnNpemUoKSkpOworICAgICAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfbmVxX251bGwpIHsKKyAgICAgICAgaW50IGRz
dEluZGV4OworICAgICAgICBpbnQgc3JjSW5kZXg7CisKKyAgICAgICAgcmV0cmlldmVMYXN0VW5h
cnlPcChkc3RJbmRleCwgc3JjSW5kZXgpOworCisgICAgICAgIGlmIChjb25kLT5pbmRleCgpID09
IGRzdEluZGV4ICYmIGNvbmQtPmlzVGVtcG9yYXJ5KCkgJiYgIWNvbmQtPnJlZkNvdW50KCkpIHsK
KyAgICAgICAgICAgIHJld2luZFVuYXJ5T3AoKTsKKyAgICAgICAgICAgIGVtaXRPcGNvZGUob3Bf
amVxX251bGwpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyY0luZGV4KTsK
KyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPm9mZnNldEZyb20oaW5z
dHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgICAg
ICB9CiAgICAgfQogCiAgICAgZW1pdE9wY29kZShvcF9qZmFsc2UpOwpJbmRleDogVk0vTWFjaGlu
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVk0vTWFjaGluZS5jcHAJKHJldmlzaW9uIDM3Nzg1KQorKysg
Vk0vTWFjaGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMzIsNiArMzAzMiw0MiBAQCBKU1Zh
bHVlUHRyIE1hY2hpbmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1CiAgICAgICAgICsrdlBDOwogICAg
ICAgICBORVhUX09QQ09ERTsKICAgICB9CisgICAgQkVHSU5fT1BDT0RFKG9wX2plcV9udWxsKSB7
CisgICAgICAgIC8qIGplcV9udWxsIGNvbmQocikgdGFyZ2V0KG9mZnNldCkKKworICAgICAgICAg
ICBKdW1wcyB0byBvZmZzZXQgdGFyZ2V0IGZyb20gdGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24sIGlm
IGFuZAorICAgICAgICAgICBvbmx5IGlmIHJlZ2lzdGVyIGNvbmQgaXMgbnVsbC4KKyAgICAgICAg
Ki8KKyAgICAgICAgaW50IGNvbmQgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CisgICAgICAgIGludCB0
YXJnZXQgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CisgICAgICAgIEpTVmFsdWVQdHIgc3JjID0gY2Fs
bEZyYW1lW2NvbmRdLmpzVmFsdWUoY2FsbEZyYW1lKTsKKworICAgICAgICBpZiAoc3JjLT5pc1Vu
ZGVmaW5lZE9yTnVsbCgpIHx8ICghSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHNyYykgJiYgc3Jj
LT5hc0NlbGwoKS0+c3RydWN0dXJlSUQoKS0+dHlwZUluZm8oKS5tYXNxdWVyYWRlc0FzVW5kZWZp
bmVkKCkpKSB7CisgICAgICAgICAgICB2UEMgKz0gdGFyZ2V0OworICAgICAgICAgICAgTkVYVF9P
UENPREU7CisgICAgICAgIH0KKworICAgICAgICArK3ZQQzsKKyAgICAgICAgTkVYVF9PUENPREU7
CisgICAgfQorICAgIEJFR0lOX09QQ09ERShvcF9qbmVxX251bGwpIHsKKyAgICAgICAgLyogam5l
cV9udWxsIGNvbmQocikgdGFyZ2V0KG9mZnNldCkKKworICAgICAgICAgICBKdW1wcyB0byBvZmZz
ZXQgdGFyZ2V0IGZyb20gdGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24sIGlmIGFuZAorICAgICAgICAg
ICBvbmx5IGlmIHJlZ2lzdGVyIGNvbmQgaXMgbm90IG51bGwuCisgICAgICAgICovCisgICAgICAg
IGludCBjb25kID0gKCsrdlBDKS0+dS5vcGVyYW5kOworICAgICAgICBpbnQgdGFyZ2V0ID0gKCsr
dlBDKS0+dS5vcGVyYW5kOworICAgICAgICBKU1ZhbHVlUHRyIHNyYyA9IGNhbGxGcmFtZVtjb25k
XS5qc1ZhbHVlKGNhbGxGcmFtZSk7CisKKyAgICAgICAgaWYgKCFzcmMtPmlzVW5kZWZpbmVkT3JO
dWxsKCkgfHwgKCFKU0ltbWVkaWF0ZTo6aXNJbW1lZGlhdGUoc3JjKSAmJiAhc3JjLT5hc0NlbGwo
KS0+c3RydWN0dXJlSUQoKS0+dHlwZUluZm8oKS5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKCkpKSB7
CisgICAgICAgICAgICB2UEMgKz0gdGFyZ2V0OworICAgICAgICAgICAgTkVYVF9PUENPREU7Cisg
ICAgICAgIH0KKworICAgICAgICArK3ZQQzsKKyAgICAgICAgTkVYVF9PUENPREU7CisgICAgfQog
ICAgIEJFR0lOX09QQ09ERShvcF9sb29wX2lmX2xlc3MpIHsKICAgICAgICAgLyogbG9vcF9pZl9s
ZXNzIHNyYzEocikgc3JjMihyKSB0YXJnZXQob2Zmc2V0KQogCkluZGV4OiBWTS9PcGNvZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBWTS9PcGNvZGUuaAkocmV2aXNpb24gMzc3ODUpCisrKyBWTS9PcGNvZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBtYWNybyhvcF9qbXApIFwKICAgICAgICAgbWFjcm8ob3BfanRydWUpIFwKICAgICAgICAg
bWFjcm8ob3BfamZhbHNlKSBcCisgICAgICAgIG1hY3JvKG9wX2plcV9udWxsKSBcCisgICAgICAg
IG1hY3JvKG9wX2puZXFfbnVsbCkgXAogICAgICAgICBtYWNybyhvcF9qbmxlc3MpIFwKICAgICAg
ICAgbWFjcm8ob3Bfam1wX3Njb3BlcykgXAogICAgICAgICBtYWNybyhvcF9sb29wKSBcCg==
</data>
<flag name="review"
          id="11200"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>