<?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>44878</bug_id>
          
          <creation_ts>2010-08-30 11:36:25 -0700</creation_ts>
          <short_desc>Improve resource size tracking</short_desc>
          <delta_ts>2010-08-30 17:12:11 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Dmitry Gorbik">socket.h</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>joepeck</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271522</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2010-08-30 11:36:25 -0700</bug_when>
    <thetext>The idea of Cache.cpp was to track resources in memory. But now we are able to place them in a purgeable memory and also we would like to mmap them on the disk. So we need to track sizes for all those cases separately to clean up the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271731</commentid>
    <comment_count>1</comment_count>
      <attachid>65976</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2010-08-30 16:24:27 -0700</bug_when>
    <thetext>Created attachment 65976
Proposed patch v1.0</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65976</attachid>
            <date>2010-08-30 16:24:27 -0700</date>
            <delta_ts>2010-08-30 16:24:27 -0700</delta_ts>
            <desc>Proposed patch v1.0</desc>
            <filename>cache.patch</filename>
            <type>text/plain</type>
            <size>10728</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDgtMzAgIERtaXRyeSBHb3JiaWsgIDxzb2NrZXQuaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4CisKKyAgICAgICAg
VGhlIGlkZWEgb2YgQ2FjaGUuY3BwIHdhcyB0byB0cmFjayByZXNvdXJjZXMgaW4gbWVtb3J5Lgor
ICAgICAgICBCdXQgbm93IHdlIGFyZSBhYmxlIHRvIHBsYWNlIHRoZW0gaW4gYSBwdXJnZWFibGUg
bWVtb3J5IGFuZCBhbHNvIHdlIHdvdWxkIGxpa2UgdG8gbW1hcCB0aGVtIG9uIHRoZSBkaXNrLgor
ICAgICAgICBTbyB3ZSBuZWVkIHRvIHRyYWNrIHNpemVzIGZvciBhbGwgdGhvc2UgY2FzZXMgc2Vw
YXJhdGVseSB0byBjbGVhbiB1cCB0aGUgY29kZS4KKworICAgICAgICAqIGxvYWRlci9DYWNoZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGU6OnJldmFsaWRhdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6
ZGVhZENhcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpwcnVuZUxpdmVSZXNvdXJj
ZXMpOiBVc2UgaW5NZW1vcnkgdmFycyB0byBkZWNpZGUgd2hldGhlciB3ZSBzaG91bGQgcHJ1bmUu
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlOjpldmljdCk6IERlY3JlYXNlIHB1cmdlYWJsZVNpemUgaWYgd2UgaGF2
ZSBwdXJnZWFibGUgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpyZXNvdXJjZUFjY2Vz
c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjphZGRUb0xpdmVSZXNvdXJjZXNTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpyZW1vdmVGcm9tTGl2ZVJlc291cmNlc1NpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmFkanVzdE92ZXJhbGxTaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlOjphZGp1c3RJbk1lbW9yeVNpemUpOgorICAgICAgICAqIGxvYWRlci9DYWNo
ZS5oOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OnNldERlY29kZWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlOjpzZXRFbmNvZGVkU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZTo6bWFrZVB1cmdlYWJsZSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZFJlc291cmNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6cHVyZ2VhYmxlU2l6ZSk6CisKIDIw
MTAtMDgtMzAgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZWRS
ZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmgJ
KHJldmlzaW9uIDY2NDAwKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw4IEBACiAgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIGVuY29kZWRTaXplKCkgKyBkZWNvZGVkU2l6ZSgpICsgb3ZlcmhlYWRTaXplKCk7
IH0KICAgICB1bnNpZ25lZCBlbmNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZW5jb2RlZFNp
emU7IH0KICAgICB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVjb2Rl
ZFNpemU7IH0KKyAgICB1bnNpZ25lZCBwdXJnZWFibGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9w
dXJnZWFibGVTaXplOyB9IC8vIHB1cmdlYWJsZSBlbmNvZGVkIGRhdGEgb25seS4KKwogICAgIHVu
c2lnbmVkIG92ZXJoZWFkU2l6ZSgpIGNvbnN0OwogICAgIAogICAgIGJvb2wgaXNMb2FkZWQoKSBj
b25zdCB7IHJldHVybiAhbV9sb2FkaW5nOyB9IC8vIEZJWE1FLiBNZXRob2QgbmFtZSBpcyBpbmFj
Y3VyYXRlLiBMb2FkaW5nIG1pZ2h0IG5vdCBoYXZlIHN0YXJ0ZWQgeWV0LgpAQCAtMjQxLDYgKzI0
Myw3IEBACiAKICAgICB1bnNpZ25lZCBtX2VuY29kZWRTaXplOwogICAgIHVuc2lnbmVkIG1fZGVj
b2RlZFNpemU7CisgICAgdW5zaWduZWQgbV9wdXJnZWFibGVTaXplOwogICAgIHVuc2lnbmVkIG1f
YWNjZXNzQ291bnQ7CiAgICAgdW5zaWduZWQgbV9oYW5kbGVDb3VudDsKICAgICB1bnNpZ25lZCBt
X3ByZWxvYWRDb3VudDsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5jcHAJKHJldmlzaW9u
IDY2NDAwKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01OCw2ICs1OCw3IEBACiAgICAgLCBtX2xhc3REZWNvZGVkQWNjZXNzVGltZSgwKQog
ICAgICwgbV9lbmNvZGVkU2l6ZSgwKQogICAgICwgbV9kZWNvZGVkU2l6ZSgwKQorICAgICwgbV9w
dXJnZWFibGVTaXplKDApCiAgICAgLCBtX2FjY2Vzc0NvdW50KDApCiAgICAgLCBtX2hhbmRsZUNv
dW50KDApCiAgICAgLCBtX3ByZWxvYWRDb3VudCgwKQpAQCAtMjk4LDcgKzI5OSw4IEBACiAgICAg
ICAgICAgICBjYWNoZSgpLT5yZW1vdmVGcm9tTGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0KHRoaXMp
OwogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUncyBzaXplIHRvdGFscy4KLSAgICAgICAg
Y2FjaGUoKS0+YWRqdXN0U2l6ZShoYXNDbGllbnRzKCksIGRlbHRhKTsKKyAgICAgICAgY2FjaGUo
KS0+YWRqdXN0T3ZlcmFsbFNpemUoaGFzQ2xpZW50cygpLCBkZWx0YSk7CisgICAgICAgIGNhY2hl
KCktPmFkanVzdEluTWVtb3J5U2l6ZShoYXNDbGllbnRzKCksIGRlbHRhKTsgLy8gRGVjb2RlZCBk
YXRhIHN0b3JlZCBpbiBtZW1vcnkgb25seSBmb3Igbm93LgogICAgIH0KIH0KIApAQCAtMzI1LDcg
KzMyNyw4IEBACiAgICAgICAgIGNhY2hlKCktPmluc2VydEluTFJVTGlzdCh0aGlzKTsKICAgICAg
ICAgCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUncyBzaXplIHRvdGFscy4KLSAgICAgICAg
Y2FjaGUoKS0+YWRqdXN0U2l6ZShoYXNDbGllbnRzKCksIGRlbHRhKTsKKyAgICAgICAgY2FjaGUo
KS0+YWRqdXN0T3ZlcmFsbFNpemUoaGFzQ2xpZW50cygpLCBkZWx0YSk7CisgICAgICAgIGNhY2hl
KCktPmFkanVzdEluTWVtb3J5U2l6ZShoYXNDbGllbnRzKCksIGRlbHRhKTsgLy8gU2luY2Ugc2V0
RW5jb2RlZFNpemUgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpZiBlbmNvZGVkIGRhdGEgaXMgcHVy
Z2VhYmxlLgogICAgIH0KIH0KIApAQCAtNDk0LDYgKzQ5Nyw3IEBACiAgICAgICAgIAogICAgICAg
ICBtX3B1cmdlYWJsZURhdGEtPm1ha2VQdXJnZWFibGUodHJ1ZSk7CiAgICAgICAgIG1fZGF0YS5j
bGVhcigpOworICAgICAgICBtX3B1cmdlYWJsZVNpemUgPSBtX2VuY29kZWRTaXplOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTUwNiw2ICs1MTAsNyBAQAogICAgICAgICByZXR1
cm4gZmFsc2U7IAogCiAgICAgbV9kYXRhID0gU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1
ZmZlcihtX3B1cmdlYWJsZURhdGEucmVsZWFzZSgpKTsKKyAgICBtX3B1cmdlYWJsZVNpemUgPSAw
OwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9DYWNoZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlLmgJKHJldmlzaW9uIDY2NDAwKQorKysg
V2ViQ29yZS9sb2FkZXIvQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw4IEBA
CiAgICAgdm9pZCByZW1vdmVGcm9tTFJVTGlzdChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgLy8g
Q2FsbGVkIHRvIGFkanVzdCB0aGUgY2FjaGUgdG90YWxzIHdoZW4gYSByZXNvdXJjZSBjaGFuZ2Vz
IHNpemUuCi0gICAgdm9pZCBhZGp1c3RTaXplKGJvb2wgbGl2ZSwgaW50IGRlbHRhKTsKKyAgICB2
b2lkIGFkanVzdE92ZXJhbGxTaXplKGJvb2wgbGl2ZSwgaW50IGRlbHRhKTsKKyAgICB2b2lkIGFk
anVzdEluTWVtb3J5U2l6ZShib29sIGxpdmUsIGludCBkZWx0YSk7CiAKICAgICAvLyBUcmFjayBk
ZWNvZGVkIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2FjaGUgYW5kIHJlZmVyZW5jZWQgYnkg
YSBXZWIgcGFnZS4KICAgICB2b2lkIGluc2VydEluTGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0KENh
Y2hlZFJlc291cmNlKik7CkBAIC0xODMsOSArMTg0LDEyIEBACiAgICAgdW5zaWduZWQgbV9tYXhE
ZWFkQ2FwYWNpdHk7CiAgICAgZG91YmxlIG1fZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZh
bDsKIAotICAgIHVuc2lnbmVkIG1fbGl2ZVNpemU7IC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgY3Vy
cmVudGx5IGNvbnN1bWVkIGJ5ICJsaXZlIiByZXNvdXJjZXMgaW4gdGhlIGNhY2hlLgotICAgIHVu
c2lnbmVkIG1fZGVhZFNpemU7IC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgY3VycmVudGx5IGNvbnN1
bWVkIGJ5ICJkZWFkIiByZXNvdXJjZXMgaW4gdGhlIGNhY2hlLgorICAgIHVuc2lnbmVkIG1fbGl2
ZVNpemU7IC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgY3VycmVudGx5IGNvbnN1bWVkIGJ5ICJsaXZl
IiByZXNvdXJjZXMgaW4gdGhlIGNhY2hlIG92ZXJhbGwuCisgICAgdW5zaWduZWQgbV9kZWFkU2l6
ZTsgLy8gVGhlIG51bWJlciBvZiBieXRlcyBjdXJyZW50bHkgY29uc3VtZWQgYnkgImRlYWQiIHJl
c291cmNlcyBpbiB0aGUgY2FjaGUgb3ZlcmFsbC4KIAorICAgIHVuc2lnbmVkIG1fbGl2ZUluTWVt
b3J5U2l6ZTsgLy8gVGhlIG51bWJlciBvZiBieXRlcyBjdXJyZW50bHkgY29uc3VtZWQgYnkgImxp
dmUiIHJlc291cmNlcyBpbiB0aGUgY2FjaGUgaW4gbWVtb3J5LgorICAgIHVuc2lnbmVkIG1fZGVh
ZEluTWVtb3J5U2l6ZTsgLy8gVGhlIG51bWJlciBvZiBieXRlcyBjdXJyZW50bHkgY29uc3VtZWQg
YnkgImRlYWQiIHJlc291cmNlcyBpbiB0aGUgY2FjaGUgaW4gbWVtb3J5LgorCiAgICAgLy8gU2l6
ZS1hZGp1c3RlZCBhbmQgcG9wdWxhcml0eS1hd2FyZSBMUlUgbGlzdCBjb2xsZWN0aW9uIGZvciBj
YWNoZSBvYmplY3RzLiAgVGhpcyBjb2xsZWN0aW9uIGNhbiBob2xkCiAgICAgLy8gbW9yZSByZXNv
dXJjZXMgdGhhbiB0aGUgY2FjaGVkIHJlc291cmNlIG1hcCwgc2luY2UgaXQgY2FuIGFsc28gaG9s
ZCAic3RhbGUiIG11bHRpcGxlIHZlcnNpb25zIG9mIG9iamVjdHMgdGhhdCBhcmUKICAgICAvLyB3
YWl0aW5nIHRvIGRpZSB3aGVuIHRoZSBjbGllbnRzIHJlZmVyZW5jaW5nIHRoZW0gZ28gYXdheS4K
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xv
YWRlci9DYWNoZS5jcHAJKHJldmlzaW9uIDY2NDAwKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw4IEBACiAgICAgLCBtX2RlYWREZWNvZGVk
RGF0YURlbGV0aW9uSW50ZXJ2YWwoY0RlZmF1bHREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwp
CiAgICAgLCBtX2xpdmVTaXplKDApCiAgICAgLCBtX2RlYWRTaXplKDApCisgICAgLCBtX2xpdmVJ
bk1lbW9yeVNpemUoMCkKKyAgICAsIG1fZGVhZEluTWVtb3J5U2l6ZSgwKQogewogfQogCkBAIC0y
MjIsOSArMjI0LDExIEBACiAgICAgaW50IGRlbHRhID0gcmVzb3VyY2UtPnNpemUoKTsKICAgICBp
ZiAocmVzb3VyY2UtPmRlY29kZWRTaXplKCkgJiYgcmVzb3VyY2UtPmhhc0NsaWVudHMoKSkKICAg
ICAgICAgaW5zZXJ0SW5MaXZlRGVjb2RlZFJlc291cmNlc0xpc3QocmVzb3VyY2UpOwotICAgIGlm
IChkZWx0YSkKLSAgICAgICAgYWRqdXN0U2l6ZShyZXNvdXJjZS0+aGFzQ2xpZW50cygpLCBkZWx0
YSk7Ci0gICAgCisgICAgaWYgKGRlbHRhKSB7CisgICAgICAgIGFkanVzdE92ZXJhbGxTaXplKHJl
c291cmNlLT5oYXNDbGllbnRzKCksIGRlbHRhKTsKKyAgICAgICAgYWRqdXN0SW5NZW1vcnlTaXpl
KHJlc291cmNlLT5oYXNDbGllbnRzKCksIGRlbHRhKTsKKyAgICB9CisKICAgICByZXZhbGlkYXRp
bmdSZXNvdXJjZS0+c3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpOwogICAgIC8v
IHRoaXMgZGVsZXRlcyB0aGUgcmV2YWxpZGF0aW5nIHJlc291cmNlCiAgICAgcmV2YWxpZGF0aW5n
UmVzb3VyY2UtPmNsZWFyUmVzb3VyY2VUb1JldmFsaWRhdGUoKTsKQEAgLTI1MCw3ICsyNTQsNyBA
QAogdW5zaWduZWQgQ2FjaGU6OmRlYWRDYXBhY2l0eSgpIGNvbnN0IAogewogICAgIC8vIERlYWQg
cmVzb3VyY2UgY2FwYWNpdHkgaXMgd2hhdGV2ZXIgc3BhY2UgaXMgbm90IG9jY3VwaWVkIGJ5IGxp
dmUgcmVzb3VyY2VzLCBib3VuZGVkIGJ5IGFuIGluZGVwZW5kZW50IG1pbmltdW0gYW5kIG1heGlt
dW0uCi0gICAgdW5zaWduZWQgY2FwYWNpdHkgPSBtX2NhcGFjaXR5IC0gbWluKG1fbGl2ZVNpemUs
IG1fY2FwYWNpdHkpOyAvLyBTdGFydCB3aXRoIGF2YWlsYWJsZSBjYXBhY2l0eS4KKyAgICB1bnNp
Z25lZCBjYXBhY2l0eSA9IG1fY2FwYWNpdHkgLSBtaW4obV9saXZlSW5NZW1vcnlTaXplLCBtX2Nh
cGFjaXR5KTsgLy8gU3RhcnQgd2l0aCBhdmFpbGFibGUgY2FwYWNpdHkuCiAgICAgY2FwYWNpdHkg
PSBtYXgoY2FwYWNpdHksIG1fbWluRGVhZENhcGFjaXR5KTsgLy8gTWFrZSBzdXJlIGl0J3MgYWJv
dmUgdGhlIG1pbmltdW0uCiAgICAgY2FwYWNpdHkgPSBtaW4oY2FwYWNpdHksIG1fbWF4RGVhZENh
cGFjaXR5KTsgLy8gTWFrZSBzdXJlIGl0J3MgYmVsb3cgdGhlIG1heGltdW0uCiAgICAgcmV0dXJu
IGNhcGFjaXR5OwpAQCAtMjY4LDcgKzI3Miw3IEBACiAgICAgICAgIHJldHVybjsKIAogICAgIHVu
c2lnbmVkIGNhcGFjaXR5ID0gbGl2ZUNhcGFjaXR5KCk7Ci0gICAgaWYgKGNhcGFjaXR5ICYmIG1f
bGl2ZVNpemUgPD0gY2FwYWNpdHkpCisgICAgaWYgKGNhcGFjaXR5ICYmIG1fbGl2ZUluTWVtb3J5
U2l6ZSA8PSBjYXBhY2l0eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWduZWQgdGFyZ2V0
U2l6ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXBhY2l0eSAqIGNUYXJnZXRQcnVuZVBlcmNl
bnRhZ2UpOyAvLyBDdXQgYnkgYSBwZXJjZW50YWdlIHRvIGF2b2lkIGltbWVkaWF0ZWx5IHBydW5p
bmcgYWdhaW4uCkBAIC0yOTksNyArMzAzLDcgQEAKICAgICAgICAgICAgIC8vIGxpc3QgaW4gbV9h
bGxSZXNvdXJjZXMuCiAgICAgICAgICAgICBjdXJyZW50LT5kZXN0cm95RGVjb2RlZERhdGEoKTsK
IAotICAgICAgICAgICAgaWYgKHRhcmdldFNpemUgJiYgbV9saXZlU2l6ZSA8PSB0YXJnZXRTaXpl
KQorICAgICAgICAgICAgaWYgKHRhcmdldFNpemUgJiYgbV9saXZlSW5NZW1vcnlTaXplIDw9IHRh
cmdldFNpemUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGN1
cnJlbnQgPSBwcmV2OwpAQCAtMzEyLDcgKzMxNiw3IEBACiAgICAgICAgIHJldHVybjsKIAogICAg
IHVuc2lnbmVkIGNhcGFjaXR5ID0gZGVhZENhcGFjaXR5KCk7Ci0gICAgaWYgKGNhcGFjaXR5ICYm
IG1fZGVhZFNpemUgPD0gY2FwYWNpdHkpCisgICAgaWYgKGNhcGFjaXR5ICYmIG1fZGVhZEluTWVt
b3J5U2l6ZSA8PSBjYXBhY2l0eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWduZWQgdGFy
Z2V0U2l6ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXBhY2l0eSAqIGNUYXJnZXRQcnVuZVBl
cmNlbnRhZ2UpOyAvLyBDdXQgYnkgYSBwZXJjZW50YWdlIHRvIGF2b2lkIGltbWVkaWF0ZWx5IHBy
dW5pbmcgYWdhaW4uCkBAIC0zMzIsNyArMzM2LDcgQEAKICAgICAgICAgICAgICAgICBjdXJyZW50
ID0gcHJldjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAodGFyZ2V0U2l6
ZSAmJiBtX2RlYWRTaXplIDw9IHRhcmdldFNpemUpCisgICAgICAgIGlmICh0YXJnZXRTaXplICYm
IG1fZGVhZEluTWVtb3J5U2l6ZSA8PSB0YXJnZXRTaXplKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKQEAgLTQxNCw3ICs0MTgsMTAgQEAKICAgICAgICAgLy8gU3VidHJhY3QgZnJv
bSBvdXIgc2l6ZSB0b3RhbHMuCiAgICAgICAgIGludCBkZWx0YSA9IC1zdGF0aWNfY2FzdDxpbnQ+
KHJlc291cmNlLT5zaXplKCkpOwogICAgICAgICBpZiAoZGVsdGEpCi0gICAgICAgICAgICBhZGp1
c3RTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCksIGRlbHRhKTsKKyAgICAgICAgICAgIGFkanVz
dE92ZXJhbGxTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCksIGRlbHRhKTsKKyAgICAgICAgZGVs
dGEgPSAtc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZS0+cHVyZ2VhYmxlU2l6ZSgpKTsKKyAgICAg
ICAgaWYgKGRlbHRhKQorICAgICAgICAgICAgYWRqdXN0SW5NZW1vcnlTaXplKHJlc291cmNlLT5o
YXNDbGllbnRzKCksIGRlbHRhKTsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUKG1fcmVzb3Vy
Y2VzLmdldChyZXNvdXJjZS0+dXJsKCkpICE9IHJlc291cmNlKTsKIApAQCAtNTUwLDggKzU1Nywx
MCBAQAogICAgIHJlbW92ZUZyb21MUlVMaXN0KHJlc291cmNlKTsKICAgICAKICAgICAvLyBJZiB0
aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoZSByZXNvdXJjZSBoYXMgYmVlbiBhY2Nlc3NlZCwgYWRq
dXN0IHRoZSBzaXplIG9mIHRoZSBjYWNoZSB0byBhY2NvdW50IGZvciBpdHMgaW5pdGlhbCBzaXpl
LgotICAgIGlmICghcmVzb3VyY2UtPmFjY2Vzc0NvdW50KCkpCi0gICAgICAgIGFkanVzdFNpemUo
cmVzb3VyY2UtPmhhc0NsaWVudHMoKSwgcmVzb3VyY2UtPnNpemUoKSk7CisgICAgaWYgKCFyZXNv
dXJjZS0+YWNjZXNzQ291bnQoKSkgeworICAgICAgICBhZGp1c3RPdmVyYWxsU2l6ZShyZXNvdXJj
ZS0+aGFzQ2xpZW50cygpLCByZXNvdXJjZS0+c2l6ZSgpKTsKKyAgICAgICAgYWRqdXN0SW5NZW1v
cnlTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCksIHJlc291cmNlLT5zaXplKCkpOworICAgIH0K
ICAgICAKICAgICAvLyBBZGQgdG8gb3VyIGFjY2VzcyBjb3VudC4KICAgICByZXNvdXJjZS0+aW5j
cmVhc2VBY2Nlc3NDb3VudCgpOwpAQCAtNjMxLDE1ICs2NDAsMjMgQEAKIHsKICAgICBtX2xpdmVT
aXplICs9IHJlc291cmNlLT5zaXplKCk7CiAgICAgbV9kZWFkU2l6ZSAtPSByZXNvdXJjZS0+c2l6
ZSgpOworCisgICAgdW5zaWduZWQgbWVtb3J5U2l6ZSA9IHJlc291cmNlLT5zaXplKCkgLSByZXNv
dXJjZS0+cHVyZ2VhYmxlU2l6ZSgpOworICAgIG1fbGl2ZUluTWVtb3J5U2l6ZSArPSBtZW1vcnlT
aXplOworICAgIG1fZGVhZEluTWVtb3J5U2l6ZSAtPSBtZW1vcnlTaXplOwogfQogCiB2b2lkIENh
Y2hlOjpyZW1vdmVGcm9tTGl2ZVJlc291cmNlc1NpemUoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogewogICAgIG1fbGl2ZVNpemUgLT0gcmVzb3VyY2UtPnNpemUoKTsKICAgICBtX2RlYWRTaXpl
ICs9IHJlc291cmNlLT5zaXplKCk7CisKKyAgICB1bnNpZ25lZCBtZW1vcnlTaXplID0gcmVzb3Vy
Y2UtPnNpemUoKSAtIHJlc291cmNlLT5wdXJnZWFibGVTaXplKCk7CisgICAgbV9kZWFkSW5NZW1v
cnlTaXplICs9IG1lbW9yeVNpemU7CisgICAgbV9saXZlSW5NZW1vcnlTaXplIC09IG1lbW9yeVNp
emU7CiB9CiAKLXZvaWQgQ2FjaGU6OmFkanVzdFNpemUoYm9vbCBsaXZlLCBpbnQgZGVsdGEpCit2
b2lkIENhY2hlOjphZGp1c3RPdmVyYWxsU2l6ZShib29sIGxpdmUsIGludCBkZWx0YSkKIHsKICAg
ICBpZiAobGl2ZSkgewogICAgICAgICBBU1NFUlQoZGVsdGEgPj0gMCB8fCAoKGludCltX2xpdmVT
aXplICsgZGVsdGEgPj0gMCkpOwpAQCAtNjUwLDYgKzY2NywxNyBAQAogICAgIH0KIH0KIAordm9p
ZCBDYWNoZTo6YWRqdXN0SW5NZW1vcnlTaXplKGJvb2wgbGl2ZSwgaW50IGRlbHRhKQoreworICAg
IGlmIChsaXZlKSB7CisgICAgICAgIEFTU0VSVChkZWx0YSA+PSAwIHx8ICgoaW50KW1fbGl2ZUlu
TWVtb3J5U2l6ZSArIGRlbHRhID49IDApKTsKKyAgICAgICAgbV9saXZlSW5NZW1vcnlTaXplICs9
IGRlbHRhOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChkZWx0YSA+PSAwIHx8ICgoaW50
KW1fZGVhZEluTWVtb3J5U2l6ZSArIGRlbHRhID49IDApKTsKKyAgICAgICAgbV9kZWFkSW5NZW1v
cnlTaXplICs9IGRlbHRhOworICAgIH0KK30KKwogdm9pZCBDYWNoZTo6VHlwZVN0YXRpc3RpYzo6
YWRkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIG8pCiB7CiAgICAgYm9vbCBwdXJnZWQgPSBvLT53
YXNQdXJnZWQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>