<?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>6230</bug_id>
          
          <creation_ts>2005-12-24 10:49:21 -0800</creation_ts>
          <short_desc>Remove QDict from khtml/html</short_desc>
          <delta_ts>2005-12-29 19:32:04 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6295</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26481</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-24 10:49:21 -0800</bug_when>
    <thetext>Remove QDict from khtml/html

Patch attached.  I expect this will make things faster too... testing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26482</commentid>
    <comment_count>1</comment_count>
      <attachid>5270</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-24 10:49:43 -0800</bug_when>
    <thetext>Created attachment 5270
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26484</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-24 11:29:35 -0800</bug_when>
    <thetext>This was another (small) performance win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26515</commentid>
    <comment_count>3</comment_count>
      <attachid>5270</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-24 22:34:13 -0800</bug_when>
    <thetext>Comment on attachment 5270
proposed patch.

+		 info-&gt;idCache.add(idAttrVal.impl(), idVector);

I think it would be better to use set() instead of add() here, just because it
has a more obvious semantic. On the other hand, it would be a leak (with either
set or add!) if there were already a value set for that id, so maybe ASSERT
that that&apos;s not the case?

Same comment:

+		 info-&gt;nameCache.add(nameAttrVal.impl(), nameVector);

These both come up more than once.


r=me despite this minor style nitpick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27201</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-29 19:31:12 -0800</bug_when>
    <thetext>Those won&apos;t leak as written (they check for existance first before creating).  However, these could be done 
in one-pass by checking the result of add(), but I&apos;ll leave that for another patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5270</attachid>
            <date>2005-12-24 10:49:43 -0800</date>
            <delta_ts>2005-12-24 22:34:13 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>html_hashes.patch</filename>
            <type>text/plain</type>
            <size>10367</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGh0bWxfbWlzY2ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL2h0bWwvaHRtbF9taXNjaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNDAKZGlmZiAtcCAtdSAtcjEuNDAgaHRtbF9taXNjaW1wbC5jcHAKLS0tIGh0bWxfbWlzY2lt
cGwuY3BwCTEgRGVjIDIwMDUgMTA6MzI6MTkgLTAwMDAJMS40MAorKysgaHRtbF9taXNjaW1wbC5j
cHAJMjQgRGVjIDIwMDUgMTg6NDk6NDUgLTAwMDAKQEAgLTk0LDggKzk0LDYgQEAgSFRNTENvbGxl
Y3Rpb25JbXBsOjp+SFRNTENvbGxlY3Rpb25JbXBsKAogSFRNTENvbGxlY3Rpb25JbXBsOjpDb2xs
ZWN0aW9uSW5mbzo6Q29sbGVjdGlvbkluZm8oKSA6CiAgICAgdmVyc2lvbigwKQogewotICAgIGlk
Q2FjaGUuc2V0QXV0b0RlbGV0ZSh0cnVlKTsKLSAgICBuYW1lQ2FjaGUuc2V0QXV0b0RlbGV0ZSh0
cnVlKTsKICAgICByZXNldCgpOwogfQogCkBAIC0xMDYsNyArMTA0LDkgQEAgdm9pZCBIVE1MQ29s
bGVjdGlvbkltcGw6OkNvbGxlY3Rpb25JbmZvOgogICAgIGxlbmd0aCA9IDA7CiAgICAgaGFzbGVu
Z3RoID0gZmFsc2U7CiAgICAgZWxlbWVudHNBcnJheVBvc2l0aW9uID0gMDsKKyAgICBkZWxldGVB
bGxWYWx1ZXMoaWRDYWNoZSk7CiAgICAgaWRDYWNoZS5jbGVhcigpOworICAgIGRlbGV0ZUFsbFZh
bHVlcyhuYW1lQ2FjaGUpOwogICAgIG5hbWVDYWNoZS5jbGVhcigpOwogICAgIGhhc05hbWVDYWNo
ZSA9IGZhbHNlOwogfQpAQCAtMzM4LDkgKzMzOCw4IEBAIE5vZGVJbXBsICpIVE1MQ29sbGVjdGlv
bkltcGw6Om5hbWVkSXRlbSgKIAogICAgIE5vZGVJbXBsICpuOwogICAgIGZvciAobiA9IHRyYXZl
cnNlTmV4dEl0ZW0obV9iYXNlLmdldCgpKTsgbjsgbiA9IHRyYXZlcnNlTmV4dEl0ZW0obikpIHsK
LSAgICAgICAgaWYgKGNoZWNrRm9yTmFtZU1hdGNoKG4sIGlkc0RvbmUsIG5hbWUsIGNhc2VTZW5z
aXRpdmUpKSB7CisgICAgICAgIGlmIChjaGVja0Zvck5hbWVNYXRjaChuLCBpZHNEb25lLCBuYW1l
LCBjYXNlU2Vuc2l0aXZlKSkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgfQog
ICAgICAgICAKICAgICBpbmZvLT5jdXJyZW50ID0gbjsKQEAgLTM0OSw5ICszNDgsOCBAQCBOb2Rl
SW1wbCAqSFRNTENvbGxlY3Rpb25JbXBsOjpuYW1lZEl0ZW0oCiAgICAgaWRzRG9uZSA9IHRydWU7
CiAKICAgICBmb3IgKG4gPSB0cmF2ZXJzZU5leHRJdGVtKG1fYmFzZS5nZXQoKSk7IG47IG4gPSB0
cmF2ZXJzZU5leHRJdGVtKG4pKSB7Ci0gICAgICAgIGlmIChjaGVja0Zvck5hbWVNYXRjaChuLCBp
ZHNEb25lLCBuYW1lLCBjYXNlU2Vuc2l0aXZlKSkgeworICAgICAgICBpZiAoY2hlY2tGb3JOYW1l
TWF0Y2gobiwgaWRzRG9uZSwgbmFtZSwgY2FzZVNlbnNpdGl2ZSkpCiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGluZm8tPmN1cnJlbnQgPSBuOwpAQCAtNDMxLDE0
ICs0MjksMTQgQEAgdm9pZCBIVE1MQ29sbGVjdGlvbkltcGw6OnVwZGF0ZU5hbWVDYWNoZQogICAg
ICAgICBpZiAoIW4tPmlzSFRNTEVsZW1lbnQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICBIVE1MRWxlbWVudEltcGwqIGUgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudEltcGwqPihu
KTsKLSAgICAgICAgUVN0cmluZyBpZEF0dHJWYWwgPSBlLT5nZXRBdHRyaWJ1dGUoaWRBdHRyKS5x
c3RyaW5nKCk7Ci0gICAgICAgIFFTdHJpbmcgbmFtZUF0dHJWYWwgPSBlLT5nZXRBdHRyaWJ1dGUo
bmFtZUF0dHIpLnFzdHJpbmcoKTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZEF0dHJW
YWwgPSBlLT5nZXRBdHRyaWJ1dGUoaWRBdHRyKTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lQXR0clZhbCA9IGUtPmdldEF0dHJpYnV0ZShuYW1lQXR0cik7CiAgICAgICAgIGlmICgh
aWRBdHRyVmFsLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gYWRkIHRvIGlkIGNhY2hlCi0g
ICAgICAgICAgICBRUHRyVmVjdG9yPE5vZGVJbXBsPiAqaWRWZWN0b3IgPSBpbmZvLT5pZENhY2hl
LmZpbmQoaWRBdHRyVmFsKTsKKyAgICAgICAgICAgIFFQdHJWZWN0b3I8Tm9kZUltcGw+ICppZFZl
Y3RvciA9IGluZm8tPmlkQ2FjaGUuZ2V0KGlkQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAg
aWYgKCFpZFZlY3RvcikgewogICAgICAgICAgICAgICAgIGlkVmVjdG9yID0gbmV3IFFQdHJWZWN0
b3I8Tm9kZUltcGw+OwotICAgICAgICAgICAgICAgIGluZm8tPmlkQ2FjaGUuaW5zZXJ0KGlkQXR0
clZhbCwgaWRWZWN0b3IpOworICAgICAgICAgICAgICAgIGluZm8tPmlkQ2FjaGUuYWRkKGlkQXR0
clZhbC5pbXBsKCksIGlkVmVjdG9yKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFwcGVu
ZFRvVmVjdG9yKGlkVmVjdG9yLCBuKTsKICAgICAgICAgfQpAQCAtNDQ4LDEwICs0NDYsMTAgQEAg
dm9pZCBIVE1MQ29sbGVjdGlvbkltcGw6OnVwZGF0ZU5hbWVDYWNoZQogICAgICAgICAgICAgICAg
ICBlLT5oYXNMb2NhbE5hbWUoYXBwbGV0VGFnKSB8fCBlLT5oYXNMb2NhbE5hbWUob2JqZWN0VGFn
KSB8fAogICAgICAgICAgICAgICAgICBlLT5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpKSkpIHsKICAg
ICAgICAgICAgIC8vIGFkZCB0byBuYW1lIGNhY2hlCi0gICAgICAgICAgICBRUHRyVmVjdG9yPE5v
ZGVJbXBsPiAqbmFtZVZlY3RvciA9IGluZm8tPm5hbWVDYWNoZS5maW5kKG5hbWVBdHRyVmFsKTsK
KyAgICAgICAgICAgIFFQdHJWZWN0b3I8Tm9kZUltcGw+ICpuYW1lVmVjdG9yID0gaW5mby0+bmFt
ZUNhY2hlLmdldChuYW1lQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAgaWYgKCFuYW1lVmVj
dG9yKSB7CiAgICAgICAgICAgICAgICAgbmFtZVZlY3RvciA9IG5ldyBRUHRyVmVjdG9yPE5vZGVJ
bXBsPjsKLSAgICAgICAgICAgICAgICBpbmZvLT5uYW1lQ2FjaGUuaW5zZXJ0KG5hbWVBdHRyVmFs
LCBuYW1lVmVjdG9yKTsKKyAgICAgICAgICAgICAgICBpbmZvLT5uYW1lQ2FjaGUuYWRkKG5hbWVB
dHRyVmFsLmltcGwoKSwgbmFtZVZlY3Rvcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBh
cHBlbmRUb1ZlY3RvcihuYW1lVmVjdG9yLCBuKTsKICAgICAgICAgfQpAQCAtNDYwLDcgKzQ1OCw3
IEBAIHZvaWQgSFRNTENvbGxlY3Rpb25JbXBsOjp1cGRhdGVOYW1lQ2FjaGUKICAgICBpbmZvLT5o
YXNOYW1lQ2FjaGUgPSB0cnVlOwogfQogCi1RVmFsdWVMaXN0PCBSZWZQdHI8Tm9kZUltcGw+ID4g
SFRNTENvbGxlY3Rpb25JbXBsOjpuYW1lZEl0ZW1zKGNvbnN0IERPTVN0cmluZyAmbmFtZSkgY29u
c3QKK1FWYWx1ZUxpc3Q8IFJlZlB0cjxOb2RlSW1wbD4gPiBIVE1MQ29sbGVjdGlvbkltcGw6Om5h
bWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5nICZuYW1lKSBjb25zdAogewogICAgIFFWYWx1ZUxp
c3Q8IFJlZlB0cjxOb2RlSW1wbD4gPiByZXN1bHQ7CiAKQEAgLTQ3MCw4ICs0NjgsOCBAQCBRVmFs
dWVMaXN0PCBSZWZQdHI8Tm9kZUltcGw+ID4gSFRNTENvbGxlCiAgICAgcmVzZXRDb2xsZWN0aW9u
SW5mbygpOwogICAgIHVwZGF0ZU5hbWVDYWNoZSgpOwogICAgIAotICAgIFFQdHJWZWN0b3I8Tm9k
ZUltcGw+ICppZFJlc3VsdHMgPSBpbmZvLT5pZENhY2hlLmZpbmQobmFtZS5xc3RyaW5nKCkpOwot
ICAgIFFQdHJWZWN0b3I8Tm9kZUltcGw+ICpuYW1lUmVzdWx0cyA9IGluZm8tPm5hbWVDYWNoZS5m
aW5kKG5hbWUucXN0cmluZygpKTsKKyAgICBRUHRyVmVjdG9yPE5vZGVJbXBsPiAqaWRSZXN1bHRz
ID0gaW5mby0+aWRDYWNoZS5nZXQobmFtZS5pbXBsKCkpOworICAgIFFQdHJWZWN0b3I8Tm9kZUlt
cGw+ICpuYW1lUmVzdWx0cyA9IGluZm8tPm5hbWVDYWNoZS5nZXQobmFtZS5pbXBsKCkpOwogICAg
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGlkUmVzdWx0cyAmJiBpIDwgaWRSZXN1bHRzLT5j
b3VudCgpOyArK2kpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChSZWZQdHI8Tm9kZUltcGw+KGlk
UmVzdWx0cy0+YXQoaSkpKTsKQEAgLTQ4NSw3ICs0ODMsNyBAQCBRVmFsdWVMaXN0PCBSZWZQdHI8
Tm9kZUltcGw+ID4gSFRNTENvbGxlCiB9CiAKIAotTm9kZUltcGwgKkhUTUxDb2xsZWN0aW9uSW1w
bDo6bmV4dE5hbWVkSXRlbSggY29uc3QgRE9NU3RyaW5nICZuYW1lICkgY29uc3QKK05vZGVJbXBs
ICpIVE1MQ29sbGVjdGlvbkltcGw6Om5leHROYW1lZEl0ZW0oY29uc3QgRE9NU3RyaW5nICZuYW1l
KSBjb25zdAogewogICAgIHJlc2V0Q29sbGVjdGlvbkluZm8oKTsKIApAQCAtNjM4LDEyICs2MzYs
MTIgQEAgTm9kZUltcGwgKiBIVE1MRm9ybUNvbGxlY3Rpb25JbXBsOjpuZXh0SQogICAgIHJldHVy
biBpdGVtKGluZm8tPnBvc2l0aW9uICsgMSk7CiB9CiAKLU5vZGVJbXBsICogSFRNTEZvcm1Db2xs
ZWN0aW9uSW1wbDo6bmV4dE5hbWVkSXRlbUludGVybmFsKCBjb25zdCBET01TdHJpbmcgJm5hbWUg
KSBjb25zdAorTm9kZUltcGwgKiBIVE1MRm9ybUNvbGxlY3Rpb25JbXBsOjpuZXh0TmFtZWRJdGVt
SW50ZXJuYWwoY29uc3QgRE9NU3RyaW5nICZuYW1lKSBjb25zdAogewogICAgIE5vZGVJbXBsICpy
ZXR2YWwgPSBnZXROYW1lZEZvcm1JdGVtKCBpZHNEb25lID8gbmFtZUF0dHIgOiBpZEF0dHIsIG5h
bWUsICsraW5mby0+cG9zaXRpb24sIHRydWUgKTsKLSAgICBpZiAoIHJldHZhbCApCisgICAgaWYg
KHJldHZhbCkKICAgICAgICAgcmV0dXJuIHJldHZhbDsKLSAgICBpZiAoIGlkc0RvbmUgKSAvLyB3
ZSdyZSBkb25lCisgICAgaWYgKGlkc0RvbmUpIC8vIHdlJ3JlIGRvbmUKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgLy8gQWZ0ZXIgZG9pbmcgaWQsIGRvIG5hbWUKICAgICBpZHNEb25lID0gdHJ1ZTsK
QEAgLTY5Niw3ICs2OTQsNyBAQCB2b2lkIEhUTUxGb3JtQ29sbGVjdGlvbkltcGw6OnVwZGF0ZU5h
bWVDCiAgICAgaWYgKGluZm8tPmhhc05hbWVDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UURpY3Q8Y2hhcj4gZm91bmRJbnB1dEVsZW1lbnRzOworICAgIEhhc2hTZXQ8RE9NU3RyaW5nSW1w
bCosIFBvaW50ZXJIYXNoPERPTVN0cmluZ0ltcGwqPiA+IGZvdW5kSW5wdXRFbGVtZW50czsKIAog
ICAgIGlmICghbV9iYXNlLT5oYXNUYWdOYW1lKGZvcm1UYWcpKSB7CiAgICAgICAgIGluZm8tPmhh
c05hbWVDYWNoZSA9IHRydWU7CkBAIC03MDksNTAgKzcwNyw1MCBAQCB2b2lkIEhUTUxGb3JtQ29s
bGVjdGlvbkltcGw6OnVwZGF0ZU5hbWVDCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGYt
PmZvcm1FbGVtZW50cy5jb3VudCgpOyArK2kpIHsKICAgICAgICAgSFRNTEdlbmVyaWNGb3JtRWxl
bWVudEltcGwqIGUgPSBmLT5mb3JtRWxlbWVudHNbaV07CiAgICAgICAgIGlmIChlLT5pc0VudW1l
cmF0YWJsZSgpKSB7Ci0gICAgICAgICAgICBRU3RyaW5nIGlkQXR0clZhbCA9IGUtPmdldEF0dHJp
YnV0ZShpZEF0dHIpLnFzdHJpbmcoKTsKLSAgICAgICAgICAgIFFTdHJpbmcgbmFtZUF0dHJWYWwg
PSBlLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIpLnFzdHJpbmcoKTsKKyAgICAgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgaWRBdHRyVmFsID0gZS0+Z2V0QXR0cmlidXRlKGlkQXR0cik7CisgICAg
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVBdHRyVmFsID0gZS0+Z2V0QXR0cmlidXRl
KG5hbWVBdHRyKTsKICAgICAgICAgICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgICAgIC8vIGFkZCB0byBpZCBjYWNoZQotICAgICAgICAgICAgICAgIFFQdHJWZWN0
b3I8Tm9kZUltcGw+ICppZFZlY3RvciA9IGluZm8tPmlkQ2FjaGUuZmluZChpZEF0dHJWYWwpOwor
ICAgICAgICAgICAgICAgIFFQdHJWZWN0b3I8Tm9kZUltcGw+ICppZFZlY3RvciA9IGluZm8tPmlk
Q2FjaGUuZ2V0KGlkQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAgICAgIGlmICghaWRWZWN0
b3IpIHsKICAgICAgICAgICAgICAgICAgICAgaWRWZWN0b3IgPSBuZXcgUVB0clZlY3RvcjxOb2Rl
SW1wbD47Ci0gICAgICAgICAgICAgICAgICAgIGluZm8tPmlkQ2FjaGUuaW5zZXJ0KGlkQXR0clZh
bCwgaWRWZWN0b3IpOworICAgICAgICAgICAgICAgICAgICBpbmZvLT5pZENhY2hlLmFkZChpZEF0
dHJWYWwuaW1wbCgpLCBpZFZlY3Rvcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGFwcGVuZFRvVmVjdG9yKGlkVmVjdG9yLCBzdGF0aWNfY2FzdDxOb2RlSW1wbCAqPihlKSk7
Ci0gICAgICAgICAgICAgICAgZm91bmRJbnB1dEVsZW1lbnRzLmluc2VydChpZEF0dHJWYWwsIChj
aGFyICopdHJ1ZSk7CisgICAgICAgICAgICAgICAgZm91bmRJbnB1dEVsZW1lbnRzLmluc2VydChp
ZEF0dHJWYWwuaW1wbCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghbmFtZUF0
dHJWYWwuaXNFbXB0eSgpICYmIGlkQXR0clZhbCAhPSBuYW1lQXR0clZhbCkgewogICAgICAgICAg
ICAgICAgIC8vIGFkZCB0byBuYW1lIGNhY2hlCi0gICAgICAgICAgICAgICAgUVB0clZlY3RvcjxO
b2RlSW1wbD4gKm5hbWVWZWN0b3IgPSBpbmZvLT5uYW1lQ2FjaGUuZmluZChuYW1lQXR0clZhbCk7
CisgICAgICAgICAgICAgICAgUVB0clZlY3RvcjxOb2RlSW1wbD4gKm5hbWVWZWN0b3IgPSBpbmZv
LT5uYW1lQ2FjaGUuZ2V0KG5hbWVBdHRyVmFsLmltcGwoKSk7CiAgICAgICAgICAgICAgICAgaWYg
KCFuYW1lVmVjdG9yKSB7CiAgICAgICAgICAgICAgICAgICAgIG5hbWVWZWN0b3IgPSBuZXcgUVB0
clZlY3RvcjxOb2RlSW1wbD47Ci0gICAgICAgICAgICAgICAgICAgIGluZm8tPm5hbWVDYWNoZS5p
bnNlcnQobmFtZUF0dHJWYWwsIG5hbWVWZWN0b3IpOworICAgICAgICAgICAgICAgICAgICBpbmZv
LT5uYW1lQ2FjaGUuYWRkKG5hbWVBdHRyVmFsLmltcGwoKSwgbmFtZVZlY3Rvcik7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGFwcGVuZFRvVmVjdG9yKG5hbWVWZWN0b3IsIHN0
YXRpY19jYXN0PE5vZGVJbXBsICo+KGUpKTsKLSAgICAgICAgICAgICAgICBmb3VuZElucHV0RWxl
bWVudHMuaW5zZXJ0KG5hbWVBdHRyVmFsLCAoY2hhciAqKXRydWUpOworICAgICAgICAgICAgICAg
IGZvdW5kSW5wdXRFbGVtZW50cy5pbnNlcnQobmFtZUF0dHJWYWwuaW1wbCgpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBm
LT5pbWdFbGVtZW50cy5jb3VudCgpOyArK2kpIHsKICAgICAgICAgSFRNTEltYWdlRWxlbWVudElt
cGwqIGUgPSBmLT5pbWdFbGVtZW50c1tpXTsKLSAgICAgICAgUVN0cmluZyBpZEF0dHJWYWwgPSBl
LT5nZXRBdHRyaWJ1dGUoaWRBdHRyKS5xc3RyaW5nKCk7Ci0gICAgICAgIFFTdHJpbmcgbmFtZUF0
dHJWYWwgPSBlLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIpLnFzdHJpbmcoKTsKLSAgICAgICAgaWYg
KCFpZEF0dHJWYWwuaXNFbXB0eSgpICYmICFmb3VuZElucHV0RWxlbWVudHMuZmluZChpZEF0dHJW
YWwpKSB7CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaWRBdHRyVmFsID0gZS0+Z2V0QXR0
cmlidXRlKGlkQXR0cik7CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZUF0dHJWYWwg
PSBlLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIpOworICAgICAgICBpZiAoIWlkQXR0clZhbC5pc0Vt
cHR5KCkgJiYgIWZvdW5kSW5wdXRFbGVtZW50cy5jb250YWlucyhpZEF0dHJWYWwuaW1wbCgpKSkg
ewogICAgICAgICAgICAgLy8gYWRkIHRvIGlkIGNhY2hlCi0gICAgICAgICAgICBRUHRyVmVjdG9y
PE5vZGVJbXBsPiAqaWRWZWN0b3IgPSBpbmZvLT5pZENhY2hlLmZpbmQoaWRBdHRyVmFsKTsKKyAg
ICAgICAgICAgIFFQdHJWZWN0b3I8Tm9kZUltcGw+ICppZFZlY3RvciA9IGluZm8tPmlkQ2FjaGUu
Z2V0KGlkQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAgaWYgKCFpZFZlY3RvcikgewogICAg
ICAgICAgICAgICAgIGlkVmVjdG9yID0gbmV3IFFQdHJWZWN0b3I8Tm9kZUltcGw+OwotICAgICAg
ICAgICAgICAgIGluZm8tPmlkQ2FjaGUuaW5zZXJ0KGlkQXR0clZhbCwgaWRWZWN0b3IpOworICAg
ICAgICAgICAgICAgIGluZm8tPmlkQ2FjaGUuYWRkKGlkQXR0clZhbC5pbXBsKCksIGlkVmVjdG9y
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFwcGVuZFRvVmVjdG9yKGlkVmVjdG9yLCBz
dGF0aWNfY2FzdDxOb2RlSW1wbCAqPihlKSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFuYW1l
QXR0clZhbC5pc0VtcHR5KCkgJiYgaWRBdHRyVmFsICE9IG5hbWVBdHRyVmFsICYmICFmb3VuZElu
cHV0RWxlbWVudHMuZmluZChuYW1lQXR0clZhbCkpIHsKKyAgICAgICAgaWYgKCFuYW1lQXR0clZh
bC5pc0VtcHR5KCkgJiYgaWRBdHRyVmFsICE9IG5hbWVBdHRyVmFsICYmICFmb3VuZElucHV0RWxl
bWVudHMuY29udGFpbnMobmFtZUF0dHJWYWwuaW1wbCgpKSkgewogICAgICAgICAgICAgLy8gYWRk
IHRvIG5hbWUgY2FjaGUKLSAgICAgICAgICAgIFFQdHJWZWN0b3I8Tm9kZUltcGw+ICpuYW1lVmVj
dG9yID0gaW5mby0+bmFtZUNhY2hlLmZpbmQobmFtZUF0dHJWYWwpOworICAgICAgICAgICAgUVB0
clZlY3RvcjxOb2RlSW1wbD4gKm5hbWVWZWN0b3IgPSBpbmZvLT5uYW1lQ2FjaGUuZ2V0KG5hbWVB
dHRyVmFsLmltcGwoKSk7CiAgICAgICAgICAgICBpZiAoIW5hbWVWZWN0b3IpIHsKICAgICAgICAg
ICAgICAgICBuYW1lVmVjdG9yID0gbmV3IFFQdHJWZWN0b3I8Tm9kZUltcGw+OwotICAgICAgICAg
ICAgICAgIGluZm8tPm5hbWVDYWNoZS5pbnNlcnQobmFtZUF0dHJWYWwsIG5hbWVWZWN0b3IpOwor
ICAgICAgICAgICAgICAgIGluZm8tPm5hbWVDYWNoZS5hZGQobmFtZUF0dHJWYWwuaW1wbCgpLCBu
YW1lVmVjdG9yKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFwcGVuZFRvVmVjdG9yKG5h
bWVWZWN0b3IsIHN0YXRpY19jYXN0PE5vZGVJbXBsICo+KGUpKTsKICAgICAgICAgfQpJbmRleDog
aHRtbF9taXNjaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL2h0bWwvaHRtbF9taXNjaW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI0CmRpZmYg
LXAgLXUgLXIxLjI0IGh0bWxfbWlzY2ltcGwuaAotLS0gaHRtbF9taXNjaW1wbC5oCTEgRGVjIDIw
MDUgMTA6MzI6MTkgLTAwMDAJMS4yNAorKysgaHRtbF9taXNjaW1wbC5oCTI0IERlYyAyMDA1IDE4
OjQ5OjQ2IC0wMDAwCkBAIC0yNSw4ICsyNSw4IEBACiAKICNpbmNsdWRlICJodG1sX2VsZW1lbnRp
bXBsLmgiCiAjaW5jbHVkZSAibWlzYy9zaGFyZWQuaCIKLSNpbmNsdWRlIDxxZGljdC5oPgogI2lu
Y2x1ZGUgPHFwdHJ2ZWN0b3IuaD4KKyNpbmNsdWRlIDxreG1sY29yZS9IYXNoTWFwLmg+CiAKIG5h
bWVzcGFjZSBET00gewogCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAvLyBJbiBjYXNl
IG9mIG11bHRpcGxlIGl0ZW1zIG5hbWVkIHRoZSBzYW1lIHdheQogICAgIHZpcnR1YWwgTm9kZUlt
cGwgKm5leHROYW1lZEl0ZW0oY29uc3QgRE9NU3RyaW5nICZuYW1lKSBjb25zdDsKIAotICAgIFFW
YWx1ZUxpc3Q8IFJlZlB0cjxOb2RlSW1wbD4gPiBuYW1lZEl0ZW1zKGNvbnN0IERPTVN0cmluZyAm
bmFtZSkgY29uc3Q7CisgICAgUVZhbHVlTGlzdDwgUmVmUHRyPE5vZGVJbXBsPiA+IG5hbWVkSXRl
bXMoY29uc3QgQXRvbWljU3RyaW5nICZuYW1lKSBjb25zdDsKIAogICAgIE5vZGVJbXBsICpiYXNl
KCkgeyByZXR1cm4gbV9iYXNlLmdldCgpOyB9CiAKQEAgLTExMCwxMCArMTEwLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgTm9kZUltcGwgKmN1cnJlbnQ7CiAgICAgICAgIHVuc2lnbmVkIGludCBwb3Np
dGlvbjsKICAgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aDsKLSAgICAgICAgYm9vbCBoYXNsZW5n
dGg7CiAgICAgICAgIGludCBlbGVtZW50c0FycmF5UG9zaXRpb247Ci0gICAgICAgIFFEaWN0PFFQ
dHJWZWN0b3I8Tm9kZUltcGw+ID4gaWRDYWNoZTsKLSAgICAgICAgUURpY3Q8UVB0clZlY3RvcjxO
b2RlSW1wbD4gPiBuYW1lQ2FjaGU7CisgICAgICAgIEhhc2hNYXA8RE9NU3RyaW5nSW1wbCosIFFQ
dHJWZWN0b3I8Tm9kZUltcGw+KiwgUG9pbnRlckhhc2g8RE9NU3RyaW5nSW1wbCo+ID4gaWRDYWNo
ZTsKKyAgICAgICAgSGFzaE1hcDxET01TdHJpbmdJbXBsKiwgUVB0clZlY3RvcjxOb2RlSW1wbD4q
LCBQb2ludGVySGFzaDxET01TdHJpbmdJbXBsKj4gPiBuYW1lQ2FjaGU7CisgICAgICAgIGJvb2wg
aGFzbGVuZ3RoOwogICAgICAgICBib29sIGhhc05hbWVDYWNoZTsKICAgICAgfTsKIAo=
</data>
<flag name="review"
          id="1087"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>