<?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>71978</bug_id>
          
          <creation_ts>2011-11-09 17:42:19 -0800</creation_ts>
          <short_desc>Multiple CodeBlock should be able to share the same instruction stream without copying</short_desc>
          <delta_ts>2011-11-09 20:38:10 -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>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>71977</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>499530</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-09 17:42:19 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499603</commentid>
    <comment_count>1</comment_count>
      <attachid>114423</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-09 19:46:03 -0800</bug_when>
    <thetext>Created attachment 114423
the patch

This is performance-neutral.



Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r99793)
&quot;IndirectInsts&quot; at /Volumes/Data/pizlo/octonary/OpenSource/WebKitBuild/Release/jsc (r99793)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             IndirectInsts                                  
SunSpider:
   3d-cube                                9.1951+-0.0298    ?     9.2127+-0.0350       ?
   3d-morph                              10.1246+-0.0311    ?    10.1445+-0.0849       ?
   3d-raytrace                            9.7039+-0.0634    ^     9.5737+-0.0527       ^ definitely 1.0136x faster
   access-binary-trees                    1.9889+-0.0085          1.9777+-0.0087       
   access-fannkuch                        9.3314+-0.0087          9.3194+-0.0114       
   access-nbody                           5.2766+-0.0053    ?     5.2810+-0.0100       ?
   access-nsieve                          3.7737+-0.0150    ?     3.7801+-0.0368       ?
   bitops-3bit-bits-in-byte               1.5518+-0.0143    ?     1.5562+-0.0138       ?
   bitops-bits-in-byte                    6.1937+-0.0236          6.1742+-0.0306       
   bitops-bitwise-and                     3.9955+-0.0058    ?     4.0000+-0.0102       ?
   bitops-nsieve-bits                     6.8383+-0.0437          6.8377+-0.0442       
   controlflow-recursive                  2.8435+-0.0244          2.8108+-0.0220         might be 1.0116x faster
   crypto-aes                             9.3641+-0.0693          9.2476+-0.0653         might be 1.0126x faster
   crypto-md5                             3.2962+-0.0134    ?     3.2994+-0.0118       ?
   crypto-sha1                            3.0110+-0.0174          3.0017+-0.0198       
   date-format-tofte                     12.7474+-0.0831    !    12.9870+-0.1199       ! definitely 1.0188x slower
   date-format-xparb                     12.1318+-0.1432         11.9993+-0.1692         might be 1.0110x faster
   math-cordic                            9.3523+-0.3521          9.3190+-0.3537       
   math-partial-sums                     12.7053+-0.0681         12.6480+-0.0430       
   math-spectral-norm                     3.3212+-0.0053    ?     3.3224+-0.0043       ?
   regexp-dna                            16.5074+-0.1241         16.4670+-0.1331       
   string-base64                          5.0440+-0.0464          5.0155+-0.0444       
   string-fasta                           8.5750+-0.0239          8.5691+-0.0282       
   string-tagcloud                       16.5642+-0.1475         16.3738+-0.1338         might be 1.0116x faster
   string-unpack-code                    28.5391+-0.0661         28.3653+-0.1138       
   string-validate-input                  6.8285+-0.0597    ?     6.8602+-0.0820       ?

   &lt;arithmetic&gt; *                         8.4156+-0.0223          8.3901+-0.0378       
   &lt;geometric&gt;                            6.7202+-0.0159          6.7043+-0.0270       
   &lt;harmonic&gt;                             5.2664+-0.0144          5.2560+-0.0168       

                                            TipOfTree             IndirectInsts                                  
V8:
   crypto                                96.5999+-0.2638    ?    96.7124+-0.2736       ?
   deltablue                            217.9875+-1.8447        217.1872+-1.2473       
   earley-boyer                         131.0454+-1.0592        130.8345+-0.9018       
   raytrace                              81.5071+-0.4068    ^    80.1075+-0.4319       ^ definitely 1.0175x faster
   regexp                               149.8364+-0.4580        149.7071+-0.5024       
   richards                             171.2393+-0.3957        171.2251+-0.1753       
   splay                                108.3594+-1.1757        107.0159+-1.2419         might be 1.0126x faster

   &lt;arithmetic&gt;                         136.6536+-0.4019        136.1128+-0.3722       
   &lt;geometric&gt; *                        129.9313+-0.3875        129.2864+-0.3757       
   &lt;harmonic&gt;                           123.7063+-0.3872        122.9385+-0.3845       

                                            TipOfTree             IndirectInsts                                  
Kraken:
   ai-astar                             896.4506+-0.5545    ?   896.6738+-0.4127       ?
   audio-beat-detection                 256.4160+-1.0621    ?   258.0401+-2.1476       ?
   audio-dft                            314.3094+-3.1101    ?   314.4966+-2.7991       ?
   audio-fft                            167.0367+-0.5979        166.6711+-0.1535       
   audio-oscillator                     352.6297+-1.3368    ?   352.6809+-2.5037       ?
   imaging-darkroom                     408.2399+-7.4025        402.0354+-6.0704         might be 1.0154x faster
   imaging-desaturate                   291.2936+-0.1506        291.2023+-0.0605       
   imaging-gaussian-blur                750.9313+-0.3272        750.8042+-0.1390       
   json-parse-financial                  86.9584+-0.1951         86.6275+-0.4613       
   json-stringify-tinderbox              96.3491+-0.2609    ^    94.7587+-0.3953       ^ definitely 1.0168x faster
   stanford-crypto-aes                  141.4608+-1.5955    ^   139.2627+-0.5583       ^ definitely 1.0158x faster
   stanford-crypto-ccm                  139.7091+-0.8157    ^   137.7735+-0.5919       ^ definitely 1.0140x faster
   stanford-crypto-pbkdf2               282.4020+-2.4379    !   290.3719+-4.6501       ! definitely 1.0282x slower
   stanford-crypto-sha256-iterative     118.3429+-0.3506    ?   119.2543+-0.5738       ?

   &lt;arithmetic&gt; *                       307.3235+-0.5651        307.1895+-0.6239       
   &lt;geometric&gt;                          239.9820+-0.4241        239.5484+-0.4258       
   &lt;harmonic&gt;                           193.5401+-0.3173    ^   192.7567+-0.2960       ^ definitely 1.0041x faster

                                            TipOfTree             IndirectInsts                                  
All benchmarks:
   &lt;arithmetic&gt;                         116.5513+-0.1557        116.4167+-0.1931       
   &lt;geometric&gt;                           30.3039+-0.0469         30.2254+-0.0720       
   &lt;harmonic&gt;                             9.2777+-0.0248          9.2587+-0.0290       

                                            TipOfTree             IndirectInsts                                  
Geomean of preferred means:
   &lt;scaled-result&gt;                       69.5230+-0.0962         69.3275+-0.1339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499605</commentid>
    <comment_count>2</comment_count>
      <attachid>114423</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-09 20:00:19 -0800</bug_when>
    <thetext>Comment on attachment 114423
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499610</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-09 20:38:10 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/99810</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114423</attachid>
            <date>2011-11-09 19:46:03 -0800</date>
            <delta_ts>2011-11-09 20:00:19 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>sharedinst_patch_1.diff</filename>
            <type>text/plain</type>
            <size>8772</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTk4MDMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTEtMTEtMDkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBN
dWx0aXBsZSBDb2RlQmxvY2sgc2hvdWxkIGJlIGFibGUgdG8gc2hhcmUgdGhlIHNhbWUgaW5zdHJ1
Y3Rpb24KKyAgICAgICAgc3RyZWFtIHdpdGhvdXQgY29weWluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcmVmYWN0b3JzIENvZGVC
bG9jazo6bV9pbnN0cnVjdGlvbnMgdG8gYmUgYSBWZWN0b3IgYm94ZWQgaW4gYQorICAgICAgICBy
ZWYtY291bnRlZCBvYmplY3QsIGJ1dCBvdGhlcndpc2UgZG9lcyBub3QgdGFrZSBhZHZhbnRhZ2Ug
b2YgdGhpcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgcGVyZm9ybWFuY2UgbmV1dHJhbC4K
KworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cHJpbnRTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50U3Ry
dWN0dXJlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcCk6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6Q29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp2aXNpdEFn
Z3JlZ2F0ZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c2hyaW5rVG9GaXQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omhhc0lu
c3RydWN0aW9ucyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZJbnN0cnVjdGlv
bnMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omluc3RydWN0aW9ucyk6CisgICAgICAgICog
aml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6SklUKToKKwogMjAxMS0xMS0wOSAgR2F2
aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVub3Zh
dGUgQVJNdjcgYXNzZW1ibGVyL21hY3JvLWFzc2VtYmxlcgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDk5NzkzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4NCwxNCArMjg0LDE0IEBAIHN0YXRpYyB2b2lkIHByaW50U3RydWN0dXJlU3R1YkluZm8o
Y29uc3QKIAogdm9pZCBDb2RlQmxvY2s6OnByaW50U3RydWN0dXJlKGNvbnN0IGNoYXIqIG5hbWUs
IGNvbnN0IEluc3RydWN0aW9uKiB2UEMsIGludCBvcGVyYW5kKSBjb25zdAogewotICAgIHVuc2ln
bmVkIGluc3RydWN0aW9uT2Zmc2V0ID0gdlBDIC0gbV9pbnN0cnVjdGlvbnMuYmVnaW4oKTsKKyAg
ICB1bnNpZ25lZCBpbnN0cnVjdGlvbk9mZnNldCA9IHZQQyAtIGluc3RydWN0aW9ucygpLmJlZ2lu
KCk7CiAgICAgcHJpbnRmKCIgIFslNGRdICVzOiAlc1xuIiwgaW5zdHJ1Y3Rpb25PZmZzZXQsIG5h
bWUsIHBvaW50ZXJUb1NvdXJjZVN0cmluZyh2UENbb3BlcmFuZF0udS5zdHJ1Y3R1cmUpLnV0Zjgo
KS5kYXRhKCkpOwogfQogCiB2b2lkIENvZGVCbG9jazo6cHJpbnRTdHJ1Y3R1cmVzKGNvbnN0IElu
c3RydWN0aW9uKiB2UEMpIGNvbnN0CiB7CiAgICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyID0g
bV9nbG9iYWxEYXRhLT5pbnRlcnByZXRlcjsKLSAgICB1bnNpZ25lZCBpbnN0cnVjdGlvbk9mZnNl
dCA9IHZQQyAtIG1faW5zdHJ1Y3Rpb25zLmJlZ2luKCk7CisgICAgdW5zaWduZWQgaW5zdHJ1Y3Rp
b25PZmZzZXQgPSB2UEMgLSBpbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogCiAgICAgaWYgKHZQQ1sw
XS51Lm9wY29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZCkpIHsKICAg
ICAgICAgcHJpbnRTdHJ1Y3R1cmUoImdldF9ieV9pZCIsIHZQQywgNCk7CkBAIC0zMzYsMjMgKzMz
NiwyMyBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRTdHJ1Y3R1cmVzKGNvbnN0IEluCiAKIHZvaWQg
Q29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICBpZiAobV9pbnN0
cnVjdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX2luc3RydWN0aW9ucykgewogICAgICAg
ICBwcmludGYoIk5vIGluc3RydWN0aW9ucyBhdmFpbGFibGUuXG4iKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIHNpemVfdCBpbnN0cnVjdGlvbkNvdW50ID0gMDsKIAotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9pbnN0cnVjdGlvbnMuc2l6ZSgpOyBpICs9IG9wY29kZUxlbmd0
aHNbZXhlYy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQobV9pbnN0cnVjdGlvbnNbaV0udS5v
cGNvZGUpXSkKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluc3RydWN0aW9ucygpLnNpemUo
KTsgaSArPSBvcGNvZGVMZW5ndGhzW2V4ZWMtPmludGVycHJldGVyKCktPmdldE9wY29kZUlEKGlu
c3RydWN0aW9ucygpW2ldLnUub3Bjb2RlKV0pCiAgICAgICAgICsraW5zdHJ1Y3Rpb25Db3VudDsK
IAogICAgIHByaW50ZigiJWx1IG1faW5zdHJ1Y3Rpb25zOyAlbHUgYnl0ZXMgYXQgJXA7ICVkIHBh
cmFtZXRlcihzKTsgJWQgY2FsbGVlIHJlZ2lzdGVyKHMpXG5cbiIsCiAgICAgICAgIHN0YXRpY19j
YXN0PHVuc2lnbmVkIGxvbmc+KGluc3RydWN0aW9uQ291bnQpLAotICAgICAgICBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBsb25nPihtX2luc3RydWN0aW9ucy5zaXplKCkgKiBzaXplb2YoSW5zdHJ1Y3Rp
b24pKSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaW5zdHJ1Y3Rpb25zKCku
c2l6ZSgpICogc2l6ZW9mKEluc3RydWN0aW9uKSksCiAgICAgICAgIHRoaXMsIG1fbnVtUGFyYW1l
dGVycywgbV9udW1DYWxsZWVSZWdpc3RlcnMpOwogCi0gICAgVmVjdG9yPEluc3RydWN0aW9uPjo6
Y29uc3RfaXRlcmF0b3IgYmVnaW4gPSBtX2luc3RydWN0aW9ucy5iZWdpbigpOwotICAgIFZlY3Rv
cjxJbnN0cnVjdGlvbj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1faW5zdHJ1Y3Rpb25zLmVuZCgp
OworICAgIFZlY3RvcjxJbnN0cnVjdGlvbj46OmNvbnN0X2l0ZXJhdG9yIGJlZ2luID0gaW5zdHJ1
Y3Rpb25zKCkuYmVnaW4oKTsKKyAgICBWZWN0b3I8SW5zdHJ1Y3Rpb24+Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBpbnN0cnVjdGlvbnMoKS5lbmQoKTsKICAgICBmb3IgKFZlY3RvcjxJbnN0cnVjdGlv
bj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYmVnaW47IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAg
ZHVtcChleGVjLCBiZWdpbiwgaXQpOwogCkBAIC0zOTAsMTQgKzM5MCwxNCBAQCB2b2lkIENvZGVC
bG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMpIGNvCiAgICAgaWYgKCFtX2dsb2JhbFJlc29sdmVJ
bmZvcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc2l6ZV90IGkgPSAwOwogICAgICAgICBkbyB7Ci0g
ICAgICAgICAgICAgcHJpbnRHbG9iYWxSZXNvbHZlSW5mbyhtX2dsb2JhbFJlc29sdmVJbmZvc1tp
XSwgaW5zdHJ1Y3Rpb25PZmZzZXRGb3JOdGgoZXhlYywgbV9pbnN0cnVjdGlvbnMsIGkgKyAxLCBp
c0dsb2JhbFJlc29sdmUpKTsKKyAgICAgICAgICAgICBwcmludEdsb2JhbFJlc29sdmVJbmZvKG1f
Z2xvYmFsUmVzb2x2ZUluZm9zW2ldLCBpbnN0cnVjdGlvbk9mZnNldEZvck50aChleGVjLCBpbnN0
cnVjdGlvbnMoKSwgaSArIDEsIGlzR2xvYmFsUmVzb2x2ZSkpOwogICAgICAgICAgICAgICsraTsK
ICAgICAgICAgfSB3aGlsZSAoaSA8IG1fZ2xvYmFsUmVzb2x2ZUluZm9zLnNpemUoKSk7CiAgICAg
fQogICAgIGlmICghbV9zdHJ1Y3R1cmVTdHViSW5mb3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNp
emVfdCBpID0gMDsKICAgICAgICAgZG8gewotICAgICAgICAgICAgcHJpbnRTdHJ1Y3R1cmVTdHVi
SW5mbyhtX3N0cnVjdHVyZVN0dWJJbmZvc1tpXSwgaW5zdHJ1Y3Rpb25PZmZzZXRGb3JOdGgoZXhl
YywgbV9pbnN0cnVjdGlvbnMsIGkgKyAxLCBpc1Byb3BlcnR5QWNjZXNzKSk7CisgICAgICAgICAg
ICBwcmludFN0cnVjdHVyZVN0dWJJbmZvKG1fc3RydWN0dXJlU3R1YkluZm9zW2ldLCBpbnN0cnVj
dGlvbk9mZnNldEZvck50aChleGVjLCBpbnN0cnVjdGlvbnMoKSwgaSArIDEsIGlzUHJvcGVydHlB
Y2Nlc3MpKTsKICAgICAgICAgICAgICArK2k7CiAgICAgICAgIH0gd2hpbGUgKGkgPCBtX3N0cnVj
dHVyZVN0dWJJbmZvcy5zaXplKCkpOwogICAgIH0KQEAgLTQwOSwxNCArNDA5LDE0IEBAIHZvaWQg
Q29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYykgY28KICAgICBpZiAoIW1fZ2xvYmFsUmVz
b2x2ZUluc3RydWN0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgc2l6ZV90IGkgPSAwOwogICAg
ICAgICBkbyB7Ci0gICAgICAgICAgICAgcHJpbnRTdHJ1Y3R1cmVzKCZtX2luc3RydWN0aW9uc1tt
X2dsb2JhbFJlc29sdmVJbnN0cnVjdGlvbnNbaV1dKTsKKyAgICAgICAgICAgICBwcmludFN0cnVj
dHVyZXMoJmluc3RydWN0aW9ucygpW21fZ2xvYmFsUmVzb2x2ZUluc3RydWN0aW9uc1tpXV0pOwog
ICAgICAgICAgICAgICsraTsKICAgICAgICAgfSB3aGlsZSAoaSA8IG1fZ2xvYmFsUmVzb2x2ZUlu
c3RydWN0aW9ucy5zaXplKCkpOwogICAgIH0KICAgICBpZiAoIW1fcHJvcGVydHlBY2Nlc3NJbnN0
cnVjdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNpemVfdCBpID0gMDsKICAgICAgICAgZG8g
ewotICAgICAgICAgICAgcHJpbnRTdHJ1Y3R1cmVzKCZtX2luc3RydWN0aW9uc1ttX3Byb3BlcnR5
QWNjZXNzSW5zdHJ1Y3Rpb25zW2ldXSk7CisgICAgICAgICAgICBwcmludFN0cnVjdHVyZXMoJmlu
c3RydWN0aW9ucygpW21fcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbnNbaV1dKTsKICAgICAgICAg
ICAgICArK2k7CiAgICAgICAgIH0gd2hpbGUgKGkgPCBtX3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rp
b25zLnNpemUoKSk7CiAgICAgfQpAQCAtMTQxNiw5ICsxNDE2LDggQEAgQ29kZUJsb2NrOjpDb2Rl
QmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogICAgICwgbV9pc0NvbnN0cnVjdG9yKGlzQ29uc3Ry
dWN0b3IpCiAgICAgLCBtX293bmVyRXhlY3V0YWJsZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgb3duZXJFeGVjdXRhYmxlLCBvd25lckV4ZWN1dGFibGUpCiAgICAgLCBtX2dsb2JhbERhdGEo
MCkKLSNpZm5kZWYgTkRFQlVHCisgICAgLCBtX2luc3RydWN0aW9ucyhhZG9wdFJlZihuZXcgSW5z
dHJ1Y3Rpb25zKSkKICAgICAsIG1faW5zdHJ1Y3Rpb25Db3VudCgwKQotI2VuZGlmCiAgICAgLCBt
X2FyZ3VtZW50c1JlZ2lzdGVyKC0xKQogICAgICwgbV9uZWVkc0Z1bGxTY29wZUNoYWluKG93bmVy
RXhlY3V0YWJsZS0+bmVlZHNBY3RpdmF0aW9uKCkpCiAgICAgLCBtX3VzZXNFdmFsKG93bmVyRXhl
Y3V0YWJsZS0+dXNlc0V2YWwoKSkKQEAgLTE1NTQsOSArMTU1Myw5IEBAIHZvaWQgQ29kZUJsb2Nr
Ojp2aXNpdEFnZ3JlZ2F0ZShTbG90VmlzaXQKICNlbmRpZgogI2lmIEVOQUJMRShJTlRFUlBSRVRF
UikKICAgICBmb3IgKHNpemVfdCBzaXplID0gbV9wcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9ucy5z
aXplKCksIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICB2aXNpdFN0cnVjdHVyZXModmlz
aXRvciwgJm1faW5zdHJ1Y3Rpb25zW21fcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbnNbaV1dKTsK
KyAgICAgICAgdmlzaXRTdHJ1Y3R1cmVzKHZpc2l0b3IsICZpbnN0cnVjdGlvbnMoKVttX3Byb3Bl
cnR5QWNjZXNzSW5zdHJ1Y3Rpb25zW2ldXSk7CiAgICAgZm9yIChzaXplX3Qgc2l6ZSA9IG1fZ2xv
YmFsUmVzb2x2ZUluc3RydWN0aW9ucy5zaXplKCksIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAg
ICAgICB2aXNpdFN0cnVjdHVyZXModmlzaXRvciwgJm1faW5zdHJ1Y3Rpb25zW21fZ2xvYmFsUmVz
b2x2ZUluc3RydWN0aW9uc1tpXV0pOworICAgICAgICB2aXNpdFN0cnVjdHVyZXModmlzaXRvciwg
Jmluc3RydWN0aW9ucygpW21fZ2xvYmFsUmVzb2x2ZUluc3RydWN0aW9uc1tpXV0pOwogI2VuZGlm
CiAjaWYgRU5BQkxFKEpJVCkKICAgICBmb3IgKHNpemVfdCBzaXplID0gbV9nbG9iYWxSZXNvbHZl
SW5mb3Muc2l6ZSgpLCBpID0gMDsgaSA8IHNpemU7ICsraSkgewpAQCAtMTcyMiw3ICsxNzIxLDcg
QEAgYm9vbCBDb2RlQmxvY2s6Omhhc0dsb2JhbFJlc29sdmVJbmZvQXRCeQogCiB2b2lkIENvZGVC
bG9jazo6c2hyaW5rVG9GaXQoKQogewotICAgIG1faW5zdHJ1Y3Rpb25zLnNocmlua1RvRml0KCk7
CisgICAgaW5zdHJ1Y3Rpb25zKCkuc2hyaW5rVG9GaXQoKTsKIAogI2lmIEVOQUJMRShJTlRFUlBS
RVRFUikKICAgICBtX3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zLnNocmlua1RvRml0KCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lv
biA5OTc5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAko
d29ya2luZyBjb3B5KQpAQCAtNDM4LDcgKzQzOCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBzZXRJc051bWVyaWNDb21wYXJlRnVuY3Rpb24oYm9vbCBpc051bWVyaWNDb21wYXJl
RnVuY3Rpb24pIHsgbV9pc051bWVyaWNDb21wYXJlRnVuY3Rpb24gPSBpc051bWVyaWNDb21wYXJl
RnVuY3Rpb247IH0KICAgICAgICAgYm9vbCBpc051bWVyaWNDb21wYXJlRnVuY3Rpb24oKSB7IHJl
dHVybiBtX2lzTnVtZXJpY0NvbXBhcmVGdW5jdGlvbjsgfQogCi0gICAgICAgIFZlY3RvcjxJbnN0
cnVjdGlvbj4mIGluc3RydWN0aW9ucygpIHsgcmV0dXJuIG1faW5zdHJ1Y3Rpb25zOyB9CisgICAg
ICAgIGJvb2wgaGFzSW5zdHJ1Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gISFtX2luc3RydWN0aW9u
czsgfQorICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkluc3RydWN0aW9ucygpIGNvbnN0IHsgcmV0
dXJuICFtX2luc3RydWN0aW9ucyA/IDAgOiBtX2luc3RydWN0aW9ucy0+bV9pbnN0cnVjdGlvbnMu
c2l6ZSgpOyB9CisgICAgICAgIFZlY3RvcjxJbnN0cnVjdGlvbj4mIGluc3RydWN0aW9ucygpIHsg
cmV0dXJuIG1faW5zdHJ1Y3Rpb25zLT5tX2luc3RydWN0aW9uczsgfQorICAgICAgICBjb25zdCBW
ZWN0b3I8SW5zdHJ1Y3Rpb24+JiBpbnN0cnVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2luc3Ry
dWN0aW9ucy0+bV9pbnN0cnVjdGlvbnM7IH0KICAgICAgICAgdm9pZCBkaXNjYXJkQnl0ZWNvZGUo
KSB7IG1faW5zdHJ1Y3Rpb25zLmNsZWFyKCk7IH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTEwMTUs
NyArMTAxOCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV3JpdGVCYXJyaWVyPFNjcmlw
dEV4ZWN1dGFibGU+IG1fb3duZXJFeGVjdXRhYmxlOwogICAgICAgICBKU0dsb2JhbERhdGEqIG1f
Z2xvYmFsRGF0YTsKIAotICAgICAgICBWZWN0b3I8SW5zdHJ1Y3Rpb24+IG1faW5zdHJ1Y3Rpb25z
OworICAgICAgICBzdHJ1Y3QgSW5zdHJ1Y3Rpb25zIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zdHJ1
Y3Rpb25zPiB7CisgICAgICAgICAgICBWZWN0b3I8SW5zdHJ1Y3Rpb24+IG1faW5zdHJ1Y3Rpb25z
OworICAgICAgICB9OworICAgICAgICBSZWZQdHI8SW5zdHJ1Y3Rpb25zPiBtX2luc3RydWN0aW9u
czsKICAgICAgICAgdW5zaWduZWQgbV9pbnN0cnVjdGlvbkNvdW50OwogCiAgICAgICAgIGludCBt
X3RoaXNSZWdpc3RlcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9u
IDk5NzkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw3ICs3Myw3IEBAIEpJVDo6SklUKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwg
Q29kZUIKICAgICA6IG1faW50ZXJwcmV0ZXIoZ2xvYmFsRGF0YS0+aW50ZXJwcmV0ZXIpCiAgICAg
LCBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykK
LSAgICAsIG1fbGFiZWxzKGNvZGVCbG9jayA/IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuc2l6
ZSgpIDogMCkKKyAgICAsIG1fbGFiZWxzKGNvZGVCbG9jayA/IGNvZGVCbG9jay0+bnVtYmVyT2ZJ
bnN0cnVjdGlvbnMoKSA6IDApCiAgICAgLCBtX2J5dGVjb2RlT2Zmc2V0KCh1bnNpZ25lZCktMSkK
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICwgbV9qdW1wVGFyZ2V0SW5kZXgoMCkK
</data>
<flag name="review"
          id="113061"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>