<?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>32103</bug_id>
          
          <creation_ts>2009-12-02 21:47:31 -0800</creation_ts>
          <short_desc>Add zombies to JSC</short_desc>
          <delta_ts>2009-12-03 12:38:42 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zombie</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>168287</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-02 21:47:31 -0800</bug_when>
    <thetext>While working on GC issues recently I found it useful to implement zombies in JSC.  With a few assertions added it nailed the gc bugs i was hunting fairly quickly so i figure in the interests of saving people time in future it should get placed in trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168289</commentid>
    <comment_count>1</comment_count>
      <attachid>44209</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-02 21:53:58 -0800</bug_when>
    <thetext>Created attachment 44209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168290</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-02 21:57:09 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44209 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168294</commentid>
    <comment_count>3</comment_count>
      <attachid>44209</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2009-12-02 22:17:41 -0800</bug_when>
    <thetext>Comment on attachment 44209
Patch

&gt; -#define COLLECT_ON_EVERY_ALLOCATION 0
&gt; +#define COLLECT_ON_EVERY_ALLOCATION 1

Yeah, I don&apos;t think you mean that.  I&apos;m only guessing.

&gt; -                        imp-&gt;~JSCell();
&gt; +#if ENABLE(JSC_ZOMBIES)
&gt; +                        if (!imp-&gt;isZombie()) {
&gt; +                            const ClassInfo* info = imp-&gt;classInfo();
&gt; +#endif
&gt; +                            imp-&gt;~JSCell();
&gt; +#if ENABLE(JSC_ZOMBIES)
&gt; +                            new (imp) JSZombie(info, JSZombie::leakedZombieStructure());
&gt; +                            heap.numZombies++;
&gt; +                        }
&gt; +#endif

Personally I think this might be a little nicer as:

#if ENABLE(JSC_ZOMBIES)
                        if (!imp-&gt;isZombie()) {
                            const ClassInfo* info = imp-&gt;classInfo();
                            imp-&gt;~JSCell();
                            new (imp) JSZombie(info, JSZombie::leakedZombieStructure());
                            heap.numZombies++;
                        }
#else
                        imp-&gt;~JSCell();
#endif


BRRrrrraaaiiiiiinnnnzzzzzzzzzzzzzzzzzzzzz+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168297</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-02 22:26:43 -0800</bug_when>
    <thetext>Committed r51624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168301</commentid>
    <comment_count>5</comment_count>
    <who name="JSC Zombie">zombie</who>
    <bug_when>2009-12-02 22:57:16 -0800</bug_when>
    <thetext>MMmoorrre BRRrrrraaaiiiiiinnnnzzzzzzzzzzzzzzzzzzzzz.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168506</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-12-03 12:38:42 -0800</bug_when>
    <thetext>LOL</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44209</attachid>
            <date>2009-12-02 21:53:58 -0800</date>
            <delta_ts>2009-12-02 22:17:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32103-20091202215356.patch</filename>
            <type>text/plain</type>
            <size>13389</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBjNmE4NmYxLi4xZDczNDQ0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMDktMTItMDIgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgem9tYmllcyB0byBK
U0MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTAz
CisKKyAgICAgICAgQWRkIGEgY29tcGlsZSB0aW1lIGZsYWcgdG8gbWFrZSB0aGUgSlNDIGNvbGxl
Y3RvciByZXBsYWNlICJ1bnJlYWNoYWJsZSIKKyAgICAgICAgb2JqZWN0cyB3aXRoIHpvbWJpZSBv
YmplY3RzLiAgVGhlIHpvbWJpZSBvYmplY3QgaXMgYSBKU0NlbGwgc3ViY2xhc3MgdGhhdAorICAg
ICAgICBBU1NFUlRzIG9uIGFueSBhdHRlbXB0IHRvIHVzZSB0aGUgSlNDZWxsIG1ldGhvZHMuICBJ
biBhZGRpdGlvbiB0aGVyZSBhcmUKKyAgICAgICAgYSBudW1iZXIgb2YgYWRkaXRpb25hbCBhc3Nl
cnRpb25zIGluIGJvdHRsZW5lY2sgY29kZSB0byBjYXRjaCB6b21iaWUgdXNhZ2UKKyAgICAgICAg
YXMgcXVpY2tseSBhcyBwb3NzaWJsZS4KKworICAgICAgICBHcnJyLiBBcmdoLiBCcmFpbnMuCisK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGludGVycHJldGVyL1JlZ2lzdGVyLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjpS
ZWdpc3Rlcik6CisgICAgICAgICogcnVudGltZS9BcmdMaXN0Lmg6CisgICAgICAgIChKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyOjphcHBlbmQpOgorICAgICAgICAoSlNDOjpBcmdMaXN0OjpBcmdM
aXN0KToKKyAgICAgICAgKiBydW50aW1lL0NvbGxlY3Rvci5jcHA6CisgICAgICAgIChKU0M6Okhl
YXA6OmRlc3Ryb3kpOgorICAgICAgICAoSlNDOjpIZWFwOjpzd2VlcCk6CisgICAgICAgICogcnVu
dGltZS9Db2xsZWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAo
SlNDOjpKU0NlbGw6OmlzWm9tYmllKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNab21iaWUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpk
ZWNvZGUpOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDoKKwogMjAwOS0xMi0wMSAgSmVucyBBbGZrZSAgPHNuZWpAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NTk3NzA0MS4uNzk2OWY0NyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODQsNiArMjg0LDcgQEAKIAkJ
QTdBMUY3QUMwRjI1MkIzQzAwRTE4NEUyIC8qIEJ5dGVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0ExRjdBQTBGMjUyQjNDMDBFMTg0RTIg
LyogQnl0ZUFycmF5LmNwcCAqLzsgfTsKIAkJQTdBMUY3QUQwRjI1MkIzQzAwRTE4NEUyIC8qIEJ5
dGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdBMUY3QUIwRjI1MkIzQzAwRTE4NEUyIC8qIEJ5dGVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QjQ4RjQ5MEVFODkzNkYwMERDQkRC
NiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcCAqLzsgfTsKKwkJQTdDMjIxNzgxMEM3NDc5NDAwRjk3OTEzIC8qIEpTWm9t
YmllLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QzIyMTZCMTBDNzQ2OUMwMEY5NzkxMyAvKiBKU1pvbWJpZS5jcHAgKi87IH07CiAJCUE3QzUzMEU0
MTAyQTM4MTMwMDVCQzc0MSAvKiBNYXJrU3RhY2tQb3NpeC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0M1MzBFMzEwMkEzODEzMDA1QkM3NDEgLyog
TWFya1N0YWNrUG9zaXguY3BwICovOyB9OwogCQlBN0Q2NDlBQTEwMTUyMjRFMDA5QjJFMUIgLyog
UG9zc2libHlOdWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0Q2NDlBOTEwMTUyMjRFMDA5QjJFMUIgLyogUG9zc2libHlOdWxsLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdFMkVBNkIwRkI0NjBD
RjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3RTJFQTY5MEZCNDYwQ0YwMDYwMUYwNiAvKiBMaXRlcmFsUGFy
c2VyLmggKi87IH07CkBAIC04MzcsNiArODM4LDggQEAKIAkJQTdBMUY3QUIwRjI1MkIzQzAwRTE4
NEUyIC8qIEJ5dGVBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRl
QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNDhEQjUwRUU3NENGQzAw
RENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRXhlY3V0YWJsZUFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0I0OERCNjBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdDMjIxNjgxMEM3NDVFMDAwRjk3
OTEzIC8qIEpTWm9tYmllLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWm9t
YmllLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QzIyMTZCMTBDNzQ2OUMwMEY5
NzkxMyAvKiBKU1pvbWJpZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1pvbWJpZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzUzMEUzMTAy
QTM4MTMwMDVCQzc0MSAvKiBNYXJrU3RhY2tQb3NpeC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNYXJrU3RhY2tQb3NpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3RDY0OUE5MTAxNTIyNEUwMDlCMkUxQiAvKiBQb3NzaWJseU51bGwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9zc2libHlOdWxsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3RTJFQTY5MEZCNDYwQ0YwMDYwMUYwNiAvKiBMaXRlcmFsUGFy
c2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdGVyYWxQYXJzZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTYsNiArMTU5OSw4IEBACiAJCQkJRjY5
MkE4ODUwMjU1NTk3RDAxRkY2MEY3IC8qIFVTdHJpbmcuY3BwICovLAogCQkJCUY2OTJBODg2MDI1
NTU5N0QwMUZGNjBGNyAvKiBVU3RyaW5nLmggKi8sCiAJCQkJMTQyMEJFN0ExMEFBNkREQjAwRjQ1
NUQyIC8qIFdlYWtSYW5kb20uaCAqLywKKwkJCQlBN0MyMjE2ODEwQzc0NUUwMDBGOTc5MTMgLyog
SlNab21iaWUuaCAqLywKKwkJCQlBN0MyMjE2QjEwQzc0NjlDMDBGOTc5MTMgLyogSlNab21iaWUu
Y3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBydW50aW1lOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTI0NDgsNiArMjQ1Myw3IEBACiAJCQkJMTQyOURBODIwRUQyNDgyOTAwQjg5NjE5
IC8qIFdSRUNGdW5jdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5REFFMTBFRDI2NDVC
MDBCODk2MTkgLyogV1JFQ0dlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5REFD
MDBFRDI2M0U3MDBCODk2MTkgLyogV1JFQ1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
N0MyMjE3ODEwQzc0Nzk0MDBGOTc5MTMgLyogSlNab21iaWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oIGIvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaAppbmRleCA3NjE4NGJhLi5kMGIwNTY4IDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKQEAgLTEwNCw2ICsxMDQsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXI6OlJlZ2lzdGVyKEpT
VmFsdWUgdikKICAgICB7CisjaWYgRU5BQkxFKEpTQ19aT01CSUVTKQorICAgICAgICBBU1NFUlQo
IXYuaXNab21iaWUoKSk7CisjZW5kaWYKICAgICAgICAgdS52YWx1ZSA9IEpTVmFsdWU6OmVuY29k
ZSh2KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlz
dC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKaW5kZXggMzIyNzc3MC4uOGUx
ZmRiZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKQEAgLTEwNCw3ICsxMDQsMTEgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgYXBwZW5kKEpTVmFsdWUgdikKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUKCFtX2lzUmVhZE9ubHkpOwotICAgICAgICAgICAgCisKKyNpZiBF
TkFCTEUoSlNDX1pPTUJJRVMpCisgICAgICAgICAgICBBU1NFUlQoIXYuaXNab21iaWUoKSk7Cisj
ZW5kaWYKKwogICAgICAgICAgICAgaWYgKG1faXNVc2luZ0lubGluZUJ1ZmZlciAmJiBtX3NpemUg
PCBpbmxpbmVDYXBhY2l0eSkgewogICAgICAgICAgICAgICAgIG1fdmVjdG9yLnVuY2hlY2tlZEFw
cGVuZCh2KTsKICAgICAgICAgICAgICAgICArK21fc2l6ZTsKQEAgLTE4Nyw2ICsxOTEsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICA6IG1fYXJncyhhcmdzKQogICAgICAgICAgICAg
LCBtX2FyZ0NvdW50KGFyZ0NvdW50KQogICAgICAgICB7CisjaWYgRU5BQkxFKEpTQ19aT01CSUVT
KQorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmdDb3VudDsgaSsrKQorICAg
ICAgICAgICAgICAgIEFTU0VSVCghbV9hcmdzW2ldLmlzWm9tYmllKCkpOworI2VuZGlmCiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIEFyZ0xpc3QoUmVnaXN0ZXIqIGFyZ3MsIGludCBhcmdD
b3VudCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAppbmRleCAwOWJmOGRlLi5lZjQz
MGNhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAKKysr
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiSlNWYWx1ZS5oIgorI2luY2x1ZGUgIkpTWm9tYmllLmgiCiAjaW5jbHVkZSAiTWFya1N0YWNr
LmgiCiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJUcmFjaW5nLmgiCkBAIC05Myw3ICs5
NCw3IEBACiAKICNlbmRpZgogCi0jZGVmaW5lIENPTExFQ1RfT05fRVZFUllfQUxMT0NBVElPTiAw
CisjZGVmaW5lIENPTExFQ1RfT05fRVZFUllfQUxMT0NBVElPTiAxCiAKIHVzaW5nIHN0ZDo6bWF4
OwogCkBAIC0xOTQsOSArMTk1LDExIEBAIHZvaWQgSGVhcDo6ZGVzdHJveSgpCiAKICAgICBzd2Vl
cDxQcmltYXJ5SGVhcD4oKTsKICAgICAvLyBObyBuZWVkIHRvIHN3ZWVwIG51bWJlciBoZWFwLCBi
ZWNhdXNlIHRoZSBKU051bWJlciBkZXN0cnVjdG9yIGRvZXNuJ3QgZG8gYW55dGhpbmcuCi0KKyNp
ZiBFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAgQVNTRVJUKHByaW1hcnlIZWFwLm51bUxpdmVPYmpl
Y3RzID09IHByaW1hcnlIZWFwLm51bVpvbWJpZXMpOworI2Vsc2UKICAgICBBU1NFUlQoIXByaW1h
cnlIZWFwLm51bUxpdmVPYmplY3RzKTsKLQorI2VuZGlmCiAgICAgZnJlZUJsb2NrcygmcHJpbWFy
eUhlYXApOwogICAgIGZyZWVCbG9ja3MoJm51bWJlckhlYXApOwogCkBAIC0xMDM2LDE3ICsxMDM5
LDI2IEBAIHRlbXBsYXRlIDxIZWFwVHlwZSBoZWFwVHlwZT4gc2l6ZV90IEhlYXA6OnN3ZWVwKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc3VtZXMgdGhlIG9iamVjdCBoYXMgYSB2YWxp
ZCB2cHRyLikKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsLT51LmZyZWVDZWxsLnpl
cm9JZkZyZWUgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaW1wLT5+SlND
ZWxsKCk7CisjaWYgRU5BQkxFKEpTQ19aT01CSUVTKQorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCFpbXAtPmlzWm9tYmllKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBDbGFzc0luZm8qIGluZm8gPSBpbXAtPmNsYXNzSW5mbygpOworI2VuZGlmCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW1wLT5+SlNDZWxsKCk7CisjaWYgRU5BQkxFKEpTQ19aT01CSUVT
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyAoaW1wKSBKU1pvbWJpZShpbmZvLCBK
U1pvbWJpZTo6bGVha2VkWm9tYmllU3RydWN0dXJlKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlYXAubnVtWm9tYmllcysrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorI2Vu
ZGlmCiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIC0tdXNlZENlbGxzOwogICAgICAgICAgICAgICAgICAgICAtLW51bUxpdmVP
YmplY3RzOworI2lmICFFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAgICAgICAgICAgICAgICAgIC0t
dXNlZENlbGxzOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8g
cHV0IGNlbGwgb24gdGhlIGZyZWUgbGlzdAogICAgICAgICAgICAgICAgICAgICBjZWxsLT51LmZy
ZWVDZWxsLnplcm9JZkZyZWUgPSAwOwogICAgICAgICAgICAgICAgICAgICBjZWxsLT51LmZyZWVD
ZWxsLm5leHQgPSBmcmVlTGlzdCAtIChjZWxsICsgMSk7CiAgICAgICAgICAgICAgICAgICAgIGZy
ZWVMaXN0ID0gY2VsbDsKKyNlbmRpZgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIHsKQEAgLTEwNTksOCArMTA3MSwxOCBAQCB0ZW1wbGF0ZSA8SGVhcFR5
cGUgaGVhcFR5cGU+IHNpemVfdCBIZWFwOjpzd2VlcCgpCiAgICAgICAgICAgICAgICAgICAgIGlm
ICghY3VyQmxvY2stPm1hcmtlZC5nZXQoaSA+PiBIZWFwQ29uc3RhbnRzPGhlYXBUeXBlPjo6Yml0
bWFwU2hpZnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVhcFR5cGUgIT0gTnVt
YmVySGVhcCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTQ2VsbCogaW1wID0gcmVp
bnRlcnByZXRfY2FzdDxKU0NlbGwqPihjZWxsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbXAtPn5KU0NlbGwoKTsKKyNpZiBFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFpbXAtPmlzWm9tYmllKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBpbmZvID0gaW1wLT5jbGFzc0luZm8oKTsK
KyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXAtPn5KU0NlbGwoKTsK
KyNpZiBFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ldyAoaW1wKSBKU1pvbWJpZShpbmZvLCBKU1pvbWJpZTo6bGVha2VkWm9tYmllU3RydWN0dXJl
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFwLm51bVpvbWJpZXMrKzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisjZW5kaWYKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyNpZiAhRU5BQkxFKEpTQ19aT01CSUVTKQogICAgICAgICAgICAgICAgICAgICAg
ICAgLS11c2VkQ2VsbHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAtLW51bUxpdmVPYmplY3Rz
OwogICAgICAgICAgICAgICAgICAgICAgICAgCkBAIC0xMDY4LDYgKzEwOTAsNyBAQCB0ZW1wbGF0
ZSA8SGVhcFR5cGUgaGVhcFR5cGU+IHNpemVfdCBIZWFwOjpzd2VlcCgpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjZWxsLT51LmZyZWVDZWxsLnplcm9JZkZyZWUgPSAwOwogICAgICAgICAgICAg
ICAgICAgICAgICAgY2VsbC0+dS5mcmVlQ2VsbC5uZXh0ID0gZnJlZUxpc3QgLSAoY2VsbCArIDEp
OyAKICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVMaXN0ID0gY2VsbDsKKyNlbmRpZgogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuaCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29sbGVjdG9yLmgKaW5kZXggOWNhOWQxOC4uOTEyODcwMSAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbGxlY3Rvci5oCkBAIC02MCw2ICs2MCw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBzaXplX3QgbnVtTGl2ZU9iamVjdHM7CiAgICAgICAgIHNpemVfdCBudW1MaXZlT2Jq
ZWN0c0F0TGFzdENvbGxlY3Q7CiAgICAgICAgIHNpemVfdCBleHRyYUNvc3Q7CisjaWYgRU5BQkxF
KEpTQ19aT01CSUVTKQorICAgICAgICBzaXplX3QgbnVtWm9tYmllczsKKyNlbmRpZgogCiAgICAg
ICAgIE9wZXJhdGlvbkluUHJvZ3Jlc3Mgb3BlcmF0aW9uSW5Qcm9ncmVzczsKICAgICB9OwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNzIyYWUzMy4uYjE4Y2Q0OSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmll
bmQgY2xhc3MgSlNTdHJpbmc7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU1ZhbHVlOwogICAgICAg
ICBmcmllbmQgY2xhc3MgSlNBUElWYWx1ZVdyYXBwZXI7CisgICAgICAgIGZyaWVuZCBjbGFzcyBK
U1pvbWJpZTsKICAgICAgICAgZnJpZW5kIHN0cnVjdCBWUHRyU2V0OwogCiAgICAgcHJpdmF0ZToK
QEAgLTkwLDYgKzkxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQqIG9wZXJhdG9y
IG5ldyhzaXplX3QsIHZvaWQqIHBsYWNlbWVudE5ld0Rlc3RpbmF0aW9uKSB7IHJldHVybiBwbGFj
ZW1lbnROZXdEZXN0aW5hdGlvbjsgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hpbGRy
ZW4oTWFya1N0YWNrJik7CisjaWYgRU5BQkxFKEpTQ19aT01CSUVTKQorICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNab21iaWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiAKICAgICAg
ICAgLy8gT2JqZWN0IG9wZXJhdGlvbnMsIHdpdGggdGhlIHRvT2JqZWN0IG9wZXJhdGlvbiBpbmNs
dWRlZC4KICAgICAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
OwpAQCAtMzQyLDcgKzM0NiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIHJl
dHVybiBjZWxsQmxvY2soYyktPmhlYXA7CiAgICAgfQotCisgICAgCisjaWYgRU5BQkxFKEpTQ19a
T01CSUVTKQorICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzWm9tYmllKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKSAmJiBhc0NlbGwoKS0+aXNab21i
aWUoKTsKKyAgICB9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gSlND
ZWxsX2gKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKaW5kZXggNmFhYmFiZC4uMGZmMDc3NyAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmgKQEAgLTE2OCw2ICsxNjgsMTAgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHVpbnQzMl90IHRvVUludDMyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAg
ICB1aW50MzJfdCB0b1VJbnQzMihFeGVjU3RhdGUqLCBib29sJiBvaykgY29uc3Q7CiAKKyNpZiBF
TkFCTEUoSlNDX1pPTUJJRVMpCisgICAgICAgIGJvb2wgaXNab21iaWUoKSBjb25zdDsKKyNlbmRp
ZgorCiAgICAgICAgIC8vIEZsb2F0aW5nIHBvaW50IGNvbnZlcnNpb25zICh0aGlzIGlzIGEgY29u
dmVuaWVuY2UgbWV0aG9kIGZvciB3ZWJjb3JlOwogICAgICAgICAvLyBzaWdubGUgcHJlY2lzaW9u
IGZsb2F0IGlzIG5vdCBhIHJlcHJlc2VudGF0aW9uIHVzZWQgaW4gSlMgb3IgSlNDKS4KICAgICAg
ICAgZmxvYXQgdG9GbG9hdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PGZsb2F0Pih0b051bWJlcihleGVjKSk7IH0KQEAgLTQzOCw2ICs0NDIsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICB7CiAgICAgICAgIEpTVmFsdWUgdjsKICAgICAgICAgdi51LmFzRW5jb2Rl
ZEpTVmFsdWUgPSBlbmNvZGVkSlNWYWx1ZTsKKyNpZiBFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAg
ICAgIEFTU0VSVCghdi5pc1pvbWJpZSgpKTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gdjsKICAg
ICB9CiAKQEAgLTQ4NCw2ICs0OTEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgdS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKICAgICAgICAgdS5hc0Jp
dHMucGF5bG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4ocHRyKTsKKyNpZiBFTkFCTEUo
SlNDX1pPTUJJRVMpCisgICAgICAgIEFTU0VSVCghaXNab21iaWUoKSk7CisjZW5kaWYKICAgICB9
CiAKICAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShjb25zdCBKU0NlbGwqIHB0cikKQEAgLTQ5
Myw2ICs1MDMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
dS5hc0JpdHMudGFnID0gRW1wdHlWYWx1ZVRhZzsKICAgICAgICAgdS5hc0JpdHMucGF5bG9hZCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdD4oY29uc3RfY2FzdDxKU0NlbGwqPihwdHIpKTsKKyNp
ZiBFTkFCTEUoSlNDX1pPTUJJRVMpCisgICAgICAgIEFTU0VSVCghaXNab21iaWUoKSk7CisjZW5k
aWYKICAgICB9CiAKICAgICBpbmxpbmUgSlNWYWx1ZTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0CkBA
IC03OTMsMTEgKzgwNiwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNWYWx1ZTo6
SlNWYWx1ZShKU0NlbGwqIHB0cikKICAgICAgICAgOiBtX3B0cihwdHIpCiAgICAgeworI2lmIEVO
QUJMRShKU0NfWk9NQklFUykKKyAgICAgICAgQVNTRVJUKCFpc1pvbWJpZSgpKTsKKyNlbmRpZgog
ICAgIH0KIAogICAgIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKGNvbnN0IEpTQ2VsbCogcHRyKQog
ICAgICAgICA6IG1fcHRyKGNvbnN0X2Nhc3Q8SlNDZWxsKj4ocHRyKSkKICAgICB7CisjaWYgRU5B
QkxFKEpTQ19aT01CSUVTKQorICAgICAgICBBU1NFUlQoIWlzWm9tYmllKCkpOworI2VuZGlmCiAg
ICAgfQogCiAgICAgaW5saW5lIEpTVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdApkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAppbmRleCBjYzcwNGZlLi45ZTFkYmNiIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApA
QCAtOTIzLDQgKzkyMyw2IEBAIG9uIE1pbkdXLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI5MjY4ICovCiAvKiBTZXQgdXAgYSBkZWZpbmUgZm9yIGEgY29tbW9u
IGVycm9yIHRoYXQgaXMgaW50ZW5kZWQgdG8gY2F1c2UgYSBidWlsZCBlcnJvciAtLSB0aHVzIHRo
ZSBzcGFjZSBhZnRlciBFcnJvci4gKi8KICNkZWZpbmUgV1RGX1BMQVRGT1JNX0NGTkVUV09SSyBF
cnJvciBVU0VfbWFjcm9fc2hvdWxkX2JlX3VzZWRfd2l0aF9DRk5FVFdPUksKIAorI2RlZmluZSBF
TkFCTEVfSlNDX1pPTUJJRVMgMAorCiAjZW5kaWYgLyogV1RGX1BsYXRmb3JtX2ggKi8K
</data>
<flag name="review"
          id="26007"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>