<?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>90050</bug_id>
          
          <creation_ts>2012-06-26 23:33:11 -0700</creation_ts>
          <short_desc>Rename Element::rareData() to Element::elementRareData(), and Element::ensureRareData() to Element::ensureElementRareData()</short_desc>
          <delta_ts>2012-06-27 03:22:18 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>658387</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-26 23:33:11 -0700</bug_when>
    <thetext>Element::rareData()/Element::ensureRareData() and Node::rareData()/Node::ensureRareData() are confusing. They are not virtual methods. For clarification, we can rename Element::rareData() to Element::elementRareData(), and Element::ensureRareData() to Element::ensureElementRareData().

c.f. SVGRareData uses SVGElement::rareSVGData() and SVGElement::ensureRareSVGData(). (We might want to rename them to SVGElement::svgRareData() and SVGElement::ensureSVGRareData() though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658390</commentid>
    <comment_count>1</comment_count>
      <attachid>149690</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-26 23:37:20 -0700</bug_when>
    <thetext>Created attachment 149690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658422</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-27 00:43:10 -0700</bug_when>
    <thetext>Is that confusing? How could you misuse it?
Another random idea is to unify then to rareData(bool ensure);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658426</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-27 00:52:40 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Is that confusing? How could you misuse it?

Misuse would lead to a compile error (because Node::rareData() returns NodeRareData and Element::rareData() returns ElementRareData), and thus it would not cause any serious issue in consequence. That being said, distinguishing their names would be less confusing. For example, SVGElement uses rareSVGData() to retrieve SVGRareData (I am trying to rename it to svgRareData() though).

Specific context: I&apos;ve tried to virtualize Node::rareData() to cache NodeRareData* on Document to optimize Dromaeo. Then Element::rareData() prevented me from doing the virtualization. (Whether the optimization is acceptable or not is another topic.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658432</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-27 01:07:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Specific context: I&apos;ve tried to virtualize Node::rareData() to cache NodeRareData* on Document to optimize Dromaeo. Then Element::rareData() prevented me from doing the virtualization. (Whether the optimization is acceptable or not is another topic.)

I don&apos;t think we want to virtualize rareData(). That function is already slow. We shouldn&apos;t be making it even slower by virtualizing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658437</commentid>
    <comment_count>5</comment_count>
      <attachid>149690</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-27 01:11:34 -0700</bug_when>
    <thetext>Comment on attachment 149690
Patch

Regardless, this sounds like a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658438</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-27 01:12:28 -0700</bug_when>
    <thetext>morrita-san: If you think the change is OK, I&apos;m happy to commit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658506</commentid>
    <comment_count>7</comment_count>
      <attachid>149690</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 03:22:13 -0700</bug_when>
    <thetext>Comment on attachment 149690
Patch

Clearing flags on attachment: 149690

Committed r121335: &lt;http://trac.webkit.org/changeset/121335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658507</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 03:22:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149690</attachid>
            <date>2012-06-26 23:37:20 -0700</date>
            <delta_ts>2012-06-27 03:22:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90050-20120627153719.patch</filename>
            <type>text/plain</type>
            <size>13067</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU2YTAwM2YzODM0NTZi
NTAwNjU0ZTM0M2JkZWRkNjk2NjhjZjM1YS4uM2Y3ZjQ1OGVhMjVmMjA0N2Q2MGZlNjc1YTg4OWVl
YTIxY2E5NDFjMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA2LTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW5hbWUgRWxlbWVu
dDo6cmFyZURhdGEoKSB0byBFbGVtZW50OjplbGVtZW50UmFyZURhdGEoKSwgYW5kIEVsZW1lbnQ6
OmVuc3VyZVJhcmVEYXRhKCkgdG8gRWxlbWVudDo6ZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMDUwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWxlbWVudDo6cmFy
ZURhdGEoKS9FbGVtZW50OjplbnN1cmVSYXJlRGF0YSgpIGFuZAorICAgICAgICBOb2RlOjpyYXJl
RGF0YSgpL05vZGU6OmVuc3VyZVJhcmVEYXRhKCkgYXJlIGNvbmZ1c2luZy4gVGhleSBhcmUgbm90
IHZpcnR1YWwKKyAgICAgICAgbWV0aG9kcy4gRm9yIGNsYXJpZmljYXRpb24sIHdlIGNhbiByZW5h
bWUgRWxlbWVudDo6cmFyZURhdGEoKSB0bworICAgICAgICBFbGVtZW50OjplbGVtZW50UmFyZURh
dGEoKSwgYW5kIEVsZW1lbnQ6OmVuc3VyZVJhcmVEYXRhKCkgdG8KKyAgICAgICAgRWxlbWVudDo6
ZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuCisKKyAgICAgICAgYy5mLiBTVkdSYXJlRGF0YSB1c2Vz
IFNWR0VsZW1lbnQ6OnJhcmVTVkdEYXRhKCkgYW5kIFNWR0VsZW1lbnQ6OmVuc3VyZVJhcmVTVkdE
YXRhKCkuCisgICAgICAgIChXZSBtaWdodCB3YW50IHRvIHJlbmFtZSB0aGVtIHRvIFNWR0VsZW1l
bnQ6OnN2Z1JhcmVEYXRhKCkgYW5kCisgICAgICAgIFNWR0VsZW1lbnQ6OmVuc3VyZVNWR1JhcmVE
YXRhKCkgaW4gYSBmb2xsb3ctdXAgcGF0Y2guKQorCisgICAgICAgIE5vIHRlc3RzLiBObyBjaGFu
Z2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50Ojp+RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpl
bGVtZW50UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlRWxlbWVu
dFJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6ZW5zdXJlU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6Om1pbmltdW1TaXplRm9yUmVzaXppbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6c2V0TWluaW11bVNpemVGb3JSZXNpemluZyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
Ojpjb21wdXRlZFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFN0eWxlQWZm
ZWN0ZWRCeUVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnN0eWxlQWZmZWN0ZWRC
eUVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNhbmNlbEZvY3VzQXBwZWFyYW5j
ZVVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjbGFzc0xpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6b3B0aW9uYWxDbGFzc0xpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6ZGF0YXNldCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb250YWlu
c0Z1bGxTY3JlZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldENvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aGFzTmFt
ZWROb2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZUNhY2hlZEhUTUxD
b2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNhdmVkTGF5ZXJTY3JvbGxP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2F2ZWRMYXllclNjcm9sbE9m
ZnNldCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYWJl
bGFibGVFbGVtZW50OjpsYWJlbHMpOgorCiAyMDEyLTA2LTI2ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFN0b3AgY2FsbGluZyBub2RlKCkgYW5kIGRlcHJlY2F0
ZWRFZGl0aW5nT2Zmc2V0KCkgaW4gY29tcGFyZVBvc2l0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IDlkYTE1NmI0ZjFhMGE5MGVmMjhlNzI4MmZlZGE2MTYxYTM5ZWZiYjMuLjA3ZjBmOWUz
MWU1MjVlYmViMTk1MDc0ZmEzZjk3NzlkYmI0YzdiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTEzNyw3ICsxMzcsNyBAQCBFbGVtZW50Ojp+RWxlbWVudCgpCiAKICAgICBpZiAoRWxlbWVu
dFNoYWRvdyogZWxlbWVudFNoYWRvdyA9IHNoYWRvdygpKSB7CiAgICAgICAgIGVsZW1lbnRTaGFk
b3ctPnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7Ci0gICAgICAgIHJhcmVEYXRhKCktPm1fc2hhZG93
LmNsZWFyKCk7CisgICAgICAgIGVsZW1lbnRSYXJlRGF0YSgpLT5tX3NoYWRvdy5jbGVhcigpOwog
ICAgIH0KIAogICAgIGlmIChoYXNBdHRyTGlzdCgpKSB7CkBAIC0xNDYsMTUgKzE0NiwxNSBAQCBF
bGVtZW50Ojp+RWxlbWVudCgpCiAgICAgfQogfQogCi1pbmxpbmUgRWxlbWVudFJhcmVEYXRhKiBF
bGVtZW50OjpyYXJlRGF0YSgpIGNvbnN0CitpbmxpbmUgRWxlbWVudFJhcmVEYXRhKiBFbGVtZW50
OjplbGVtZW50UmFyZURhdGEoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudFJhcmVEYXRhKj4oTm9kZVJhcmVEYXRhOjpy
YXJlRGF0YUZyb21NYXAodGhpcykpOwogfQogICAgIAotaW5saW5lIEVsZW1lbnRSYXJlRGF0YSog
RWxlbWVudDo6ZW5zdXJlUmFyZURhdGEoKQoraW5saW5lIEVsZW1lbnRSYXJlRGF0YSogRWxlbWVu
dDo6ZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxl
bWVudFJhcmVEYXRhKj4oTm9kZTo6ZW5zdXJlUmFyZURhdGEoKSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEVsZW1lbnRSYXJlRGF0YSo+KGVuc3VyZVJhcmVEYXRhKCkpOwogfQogICAgIAogT3du
UHRyPE5vZGVSYXJlRGF0YT4gRWxlbWVudDo6Y3JlYXRlUmFyZURhdGEoKQpAQCAtMjM0LDcgKzIz
NCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0Qm9vbGVhbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBib29sIHZhbHVlKQogTmFtZWROb2RlTWFwKiBFbGVtZW50OjphdHRyaWJ1dGVz
KCkgY29uc3QKIHsKICAgICBlbnN1cmVVcGRhdGVkQXR0cmlidXRlRGF0YSgpOwotICAgIEVsZW1l
bnRSYXJlRGF0YSogcmFyZURhdGEgPSBjb25zdF9jYXN0PEVsZW1lbnQqPih0aGlzKS0+ZW5zdXJl
UmFyZURhdGEoKTsKKyAgICBFbGVtZW50UmFyZURhdGEqIHJhcmVEYXRhID0gY29uc3RfY2FzdDxF
bGVtZW50Kj4odGhpcyktPmVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpOwogICAgIGlmIChOYW1lZE5v
ZGVNYXAqIGF0dHJpYnV0ZU1hcCA9IHJhcmVEYXRhLT5tX2F0dHJpYnV0ZU1hcC5nZXQoKSkKICAg
ICAgICAgcmV0dXJuIGF0dHJpYnV0ZU1hcDsKIApAQCAtOTQ4LDcgKzk0OCw3IEBAIHZvaWQgRWxl
bWVudDo6YXR0YWNoKCkKICAgICB9CiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgeyAgIAotICAg
ICAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOworICAgICAgICBFbGVtZW50
UmFyZURhdGEqIGRhdGEgPSBlbGVtZW50UmFyZURhdGEoKTsKICAgICAgICAgaWYgKGRhdGEtPm5l
ZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoKCkpIHsKICAgICAgICAgICAg
IGlmIChpc0ZvY3VzYWJsZSgpICYmIGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgPT0gdGhpcykK
ICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT51cGRhdGVGb2N1c0FwcGVhcmFuY2VTb29uKGZh
bHNlIC8qIGRvbid0IHJlc3RvcmUgc2VsZWN0aW9uICovKTsKQEAgLTk3NCw3ICs5NzQsNyBAQCB2
b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgdW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2Rl
KCk7CiAgICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYgKGhhc1JhcmVE
YXRhKCkpCi0gICAgICAgIHJhcmVEYXRhKCktPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOworICAgICAg
ICBlbGVtZW50UmFyZURhdGEoKS0+cmVzZXRDb21wdXRlZFN0eWxlKCk7CiAKICAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpIHsKICAgICAgICAgZGV0YWNoQ2hp
bGRyZW5JZk5lZWRlZCgpOwpAQCAtMTA0OCw3ICsxMDQ4LDcgQEAgdm9pZCBFbGVtZW50OjpyZWNh
bGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAKICAgICBpZiAoKGNoYW5nZSA+IE5vQ2hhbmdl
IHx8IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKICAgICAgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsK
LSAgICAgICAgICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCk7CisgICAgICAg
ICAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBlbGVtZW50UmFyZURhdGEoKTsKICAgICAgICAg
ICAgIGRhdGEtPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogICAgICAgICAgICAgZGF0YS0+bV9zdHls
ZUFmZmVjdGVkQnlFbXB0eSA9IGZhbHNlOwogICAgICAgICB9CkBAIC0xMTYyLDE2ICsxMTYyLDE2
IEBAIEVsZW1lbnRTaGFkb3cqIEVsZW1lbnQ6OnNoYWRvdygpIGNvbnN0CiAgICAgaWYgKCFoYXNS
YXJlRGF0YSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiByYXJlRGF0YSgpLT5t
X3NoYWRvdy5nZXQoKTsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPm1fc2hhZG93Lmdl
dCgpOwogfQogCiBFbGVtZW50U2hhZG93KiBFbGVtZW50OjplbnN1cmVTaGFkb3coKQogewotICAg
IGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvdy5n
ZXQoKSkKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gZW5zdXJlRWxlbWVudFJhcmVE
YXRhKCktPm1fc2hhZG93LmdldCgpKQogICAgICAgICByZXR1cm4gc2hhZG93OwogCi0gICAgcmFy
ZURhdGEoKS0+bV9zaGFkb3cgPSBhZG9wdFB0cihuZXcgRWxlbWVudFNoYWRvdygpKTsKLSAgICBy
ZXR1cm4gcmFyZURhdGEoKS0+bV9zaGFkb3cuZ2V0KCk7CisgICAgZWxlbWVudFJhcmVEYXRhKCkt
Pm1fc2hhZG93ID0gYWRvcHRQdHIobmV3IEVsZW1lbnRTaGFkb3coKSk7CisgICAgcmV0dXJuIGVs
ZW1lbnRSYXJlRGF0YSgpLT5tX3NoYWRvdy5nZXQoKTsKIH0KIAogU2hhZG93Um9vdCogRWxlbWVu
dDo6ZW5zdXJlU2hhZG93Um9vdCgpCkBAIC0xMTg0LDcgKzExODQsNyBAQCBTaGFkb3dSb290KiBF
bGVtZW50OjplbnN1cmVTaGFkb3dSb290KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBy
YXJlRGF0YSgpLT5tX3NoYWRvd1BzZXVkb0lkIDogbnVsbEF0b207CisgICAgcmV0dXJuIGhhc1Jh
cmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+bV9zaGFkb3dQc2V1ZG9JZCA6IG51bGxBdG9t
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1BzZXVkb0lkKGNvbnN0IEF0b21pY1N0cmlu
ZyYgaWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTE5Nyw3ICsxMTk3LDcgQEAgdm9pZCBFbGVt
ZW50OjpzZXRTaGFkb3dQc2V1ZG9JZChjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVuc3VyZVJhcmVEYXRhKCkt
Pm1fc2hhZG93UHNldWRvSWQgPSBpZDsKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+bV9z
aGFkb3dQc2V1ZG9JZCA9IGlkOwogfQogCiBib29sIEVsZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTE1NTQsNyArMTU1NCw3IEBAIHZvaWQgRWxlbWVudDo6
Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCiAgICAgZG9jLT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmICghaXNGb2N1c2FibGUoKSkg
ewotICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXROZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0
ZVNvb25BZnRlckF0dGFjaCh0cnVlKTsKKyAgICAgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkt
PnNldE5lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoKHRydWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKQEAgLTE2MjQsMTQgKzE2MjQsMTQgQEAgU3Ry
aW5nIEVsZW1lbnQ6OnRpdGxlKCkgY29uc3QKIAogTGF5b3V0U2l6ZSBFbGVtZW50OjptaW5pbXVt
U2l6ZUZvclJlc2l6aW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJh
cmVEYXRhKCktPm1fbWluaW11bVNpemVGb3JSZXNpemluZyA6IGRlZmF1bHRNaW5pbXVtU2l6ZUZv
clJlc2l6aW5nKCk7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEo
KS0+bV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nIDogZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXpp
bmcoKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKGNvbnN0
IExheW91dFNpemUmIHNpemUpCiB7CiAgICAgaWYgKHNpemUgPT0gZGVmYXVsdE1pbmltdW1TaXpl
Rm9yUmVzaXppbmcoKSAmJiAhaGFzUmFyZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGVu
c3VyZVJhcmVEYXRhKCktPm1fbWluaW11bVNpemVGb3JSZXNpemluZyA9IHNpemU7CisgICAgZW5z
dXJlRWxlbWVudFJhcmVEYXRhKCktPm1fbWluaW11bVNpemVGb3JSZXNpemluZyA9IHNpemU7CiB9
CiAKIFJlbmRlclN0eWxlKiBFbGVtZW50Ojpjb21wdXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0Vs
ZW1lbnRTcGVjaWZpZXIpCkBAIC0xNjUyLDcgKzE2NTIsNyBAQCBSZW5kZXJTdHlsZSogRWxlbWVu
dDo6Y29tcHV0ZWRTdHlsZShQc2V1ZG9JZCBwc2V1ZG9FbGVtZW50U3BlY2lmaWVyKQogICAgICAg
ICAvLyBkb2N1bWVudCB0cmVlIGFuZCBmaWd1cmUgb3V0IHdoZW4gdG8gZGVzdHJveSB0aGUgY29t
cHV0ZWQgc3R5bGUgZm9yIHN1Y2ggZWxlbWVudHMuCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
RWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKKyAgICBFbGVtZW50UmFy
ZURhdGEqIGRhdGEgPSBlbnN1cmVFbGVtZW50UmFyZURhdGEoKTsKICAgICBpZiAoIWRhdGEtPm1f
Y29tcHV0ZWRTdHlsZSkKICAgICAgICAgZGF0YS0+bV9jb21wdXRlZFN0eWxlID0gZG9jdW1lbnQo
KS0+c3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVldHModGhpcyk7CiAgICAg
cmV0dXJuIHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPyBkYXRhLT5tX2NvbXB1dGVkU3R5bGUtPmdl
dENhY2hlZFBzZXVkb1N0eWxlKHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIpIDogZGF0YS0+bV9jb21w
dXRlZFN0eWxlLmdldCgpOwpAQCAtMTY2MCwxMyArMTY2MCwxMyBAQCBSZW5kZXJTdHlsZSogRWxl
bWVudDo6Y29tcHV0ZWRTdHlsZShQc2V1ZG9JZCBwc2V1ZG9FbGVtZW50U3BlY2lmaWVyKQogCiB2
b2lkIEVsZW1lbnQ6OnNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkKIHsKLSAgICBFbGVtZW50UmFy
ZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOworICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0
YSA9IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpOwogICAgIGRhdGEtPm1fc3R5bGVBZmZlY3RlZEJ5
RW1wdHkgPSB0cnVlOwogfQogCiBib29sIEVsZW1lbnQ6OnN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLT5tX3N0eWxl
QWZmZWN0ZWRCeUVtcHR5OworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJl
RGF0YSgpLT5tX3N0eWxlQWZmZWN0ZWRCeUVtcHR5OwogfQogCiBBdG9taWNTdHJpbmcgRWxlbWVu
dDo6Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3QKQEAgLTE2OTQsNyArMTY5NCw3IEBA
IEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAog
dm9pZCBFbGVtZW50OjpjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKQogewogICAgIGlmICho
YXNSYXJlRGF0YSgpKQotICAgICAgICByYXJlRGF0YSgpLT5zZXROZWVkc0ZvY3VzQXBwZWFyYW5j
ZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSk7CisgICAgICAgIGVsZW1lbnRSYXJlRGF0YSgp
LT5zZXROZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSk7CiAg
ICAgaWYgKGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgPT0gdGhpcykKICAgICAgICAgZG9jdW1l
bnQoKS0+Y2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiB9CkBAIC0xNzU0LDcgKzE3NTQs
NyBAQCBib29sIEVsZW1lbnQ6OndlYmtpdE1hdGNoZXNTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNl
bGVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKIAogRE9NVG9rZW5MaXN0KiBFbGVtZW50OjpjbGFz
c0xpc3QoKQogewotICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7
CisgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZW5zdXJlRWxlbWVudFJhcmVEYXRhKCk7CiAg
ICAgaWYgKCFkYXRhLT5tX2NsYXNzTGlzdCkKICAgICAgICAgZGF0YS0+bV9jbGFzc0xpc3QgPSBD
bGFzc0xpc3Q6OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gZGF0YS0+bV9jbGFzc0xpc3QuZ2V0
KCk7CkBAIC0xNzY0LDEyICsxNzY0LDEyIEBAIERPTVRva2VuTGlzdCogRWxlbWVudDo6b3B0aW9u
YWxDbGFzc0xpc3QoKSBjb25zdAogewogICAgIGlmICghaGFzUmFyZURhdGEoKSkKICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fY2xhc3NMaXN0LmdldCgpOworICAg
IHJldHVybiBlbGVtZW50UmFyZURhdGEoKS0+bV9jbGFzc0xpc3QuZ2V0KCk7CiB9CiAKIERPTVN0
cmluZ01hcCogRWxlbWVudDo6ZGF0YXNldCgpCiB7Ci0gICAgRWxlbWVudFJhcmVEYXRhKiBkYXRh
ID0gZW5zdXJlUmFyZURhdGEoKTsKKyAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBlbnN1cmVF
bGVtZW50UmFyZURhdGEoKTsKICAgICBpZiAoIWRhdGEtPm1fZGF0YXNldERPTVN0cmluZ01hcCkK
ICAgICAgICAgZGF0YS0+bV9kYXRhc2V0RE9NU3RyaW5nTWFwID0gRGF0YXNldERPTVN0cmluZ01h
cDo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBkYXRhLT5tX2RhdGFzZXRET01TdHJpbmdNYXAu
Z2V0KCk7CkBAIC0xODQ2LDEyICsxODQ2LDEyIEBAIHZvaWQgRWxlbWVudDo6d2Via2l0UmVxdWVz
dEZ1bGxTY3JlZW4odW5zaWduZWQgc2hvcnQgZmxhZ3MpCiAKIGJvb2wgRWxlbWVudDo6Y29udGFp
bnNGdWxsU2NyZWVuRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkg
PyByYXJlRGF0YSgpLT5tX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgOiBmYWxzZTsKKyAgICBy
ZXR1cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5tX2NvbnRhaW5zRnVsbFNj
cmVlbkVsZW1lbnQgOiBmYWxzZTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRDb250YWluc0Z1bGxT
Y3JlZW5FbGVtZW50KGJvb2wgZmxhZykKIHsKLSAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX2NvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQgPSBmbGFnOworICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgp
LT5tX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgPSBmbGFnOwogICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOwogfQogCkBAIC0xOTcyLDcgKzE5NzIsNyBAQCBi
b29sIEVsZW1lbnQ6OmZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUpIGNvbnN0CiAjaWZkZWYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MKIGJvb2wgRWxlbWVu
dDo6aGFzTmFtZWROb2RlTWFwKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAm
JiByYXJlRGF0YSgpLT5tX2F0dHJpYnV0ZU1hcDsKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAm
JiBlbGVtZW50UmFyZURhdGEoKS0+bV9hdHRyaWJ1dGVNYXA7CiB9CiAjZW5kaWYKIApAQCAtMjA0
MSwxOSArMjA0MSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUV4dHJhTmFtZWRJdGVtUmVnaXN0
cmF0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0CiAKIEhUTUxDb2xsZWN0aW9u
KiBFbGVtZW50OjplbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbihDb2xsZWN0aW9uVHlwZSB0eXBl
KQogewotICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLT5lbnN1cmVDYWNoZWRIVE1MQ29sbGVj
dGlvbih0aGlzLCB0eXBlKTsKKyAgICByZXR1cm4gZW5zdXJlRWxlbWVudFJhcmVEYXRhKCktPmVu
c3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKHRoaXMsIHR5cGUpOwogfQogCiBJbnRTaXplIEVsZW1l
bnQ6OnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKSBjb25zdAogewotICAgIHJldHVybiBoYXNSYXJl
RGF0YSgpID8gcmFyZURhdGEoKS0+bV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0IDogSW50U2l6ZSgp
OworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gZWxlbWVudFJhcmVEYXRhKCktPm1fc2F2ZWRM
YXllclNjcm9sbE9mZnNldCA6IEludFNpemUoKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRTYXZl
ZExheWVyU2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaWYgKHNpemUu
aXNaZXJvKCkgJiYgIWhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBlbnN1cmVS
YXJlRGF0YSgpLT5tX3NhdmVkTGF5ZXJTY3JvbGxPZmZzZXQgPSBzaXplOworICAgIGVuc3VyZUVs
ZW1lbnRSYXJlRGF0YSgpLT5tX3NhdmVkTGF5ZXJTY3JvbGxPZmZzZXQgPSBzaXplOwogfQogCiBQ
YXNzUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmF0dHJJZkV4aXN0cyhjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNmM1MmE2MDNjYWE4YjkxN2IyOGUwMzZlZDgz
ZTA2ZDU1Y2VlMDFmOS4uMDA5MmE4NzUwMjIyMTM5NWYwOTBlZDQ3ZTZhNWEzYzA3NDlhNzg0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCkBAIC00ODksOCArNDg5LDggQEAgcHJpdmF0ZToKICAgICBRdWFs
aWZpZWROYW1lIG1fdGFnTmFtZTsKICAgICB2aXJ0dWFsIE93blB0cjxOb2RlUmFyZURhdGE+IGNy
ZWF0ZVJhcmVEYXRhKCk7CiAKLSAgICBFbGVtZW50UmFyZURhdGEqIHJhcmVEYXRhKCkgY29uc3Q7
Ci0gICAgRWxlbWVudFJhcmVEYXRhKiBlbnN1cmVSYXJlRGF0YSgpOworICAgIEVsZW1lbnRSYXJl
RGF0YSogZWxlbWVudFJhcmVEYXRhKCkgY29uc3Q7CisgICAgRWxlbWVudFJhcmVEYXRhKiBlbnN1
cmVFbGVtZW50UmFyZURhdGEoKTsKIAogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSBzcGVs
bGNoZWNrQXR0cmlidXRlU3RhdGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9MYWJlbGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxh
YmxlRWxlbWVudC5jcHAKaW5kZXggMWQ1OTkzNmY2ZTM3NGRjMDIzMTViYTFiMzVmYjdjMjA3NmM2
OTJlYi4uZDE4NGRmNTc0OTA2OWIyYjM3MWZiMTI1ZTQxODBjYWZlMGFlMGM4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MYWJlbGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IExhYmVsYWJsZUVsZW1lbnQ6OmxhYmVscygpCiAgICAgaWYgKCFkb2N1
bWVudCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBOb2RlOjplbnN1cmVSYXJl
RGF0YSgpLT5lbnN1cmVOb2RlTGlzdHModGhpcyktPmFkZENhY2hlV2l0aEF0b21pY05hbWU8TGFi
ZWxzTm9kZUxpc3Q+KHRoaXMsIER5bmFtaWNOb2RlTGlzdDo6TGFiZWxzTm9kZUxpc3RUeXBlLCBz
dGFyQXRvbSk7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU5vZGVMaXN0cyh0
aGlzKS0+YWRkQ2FjaGVXaXRoQXRvbWljTmFtZTxMYWJlbHNOb2RlTGlzdD4odGhpcywgRHluYW1p
Y05vZGVMaXN0OjpMYWJlbHNOb2RlTGlzdFR5cGUsIHN0YXJBdG9tKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViY29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>