<?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>42726</bug_id>
          
          <creation_ts>2010-07-21 00:06:48 -0700</creation_ts>
          <short_desc>Refactor CSSSelector&apos;s destructor and make it inline.</short_desc>
          <delta_ts>2010-07-22 07:43:26 -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>CSS</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>0</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hayato</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>254146</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 00:06:48 -0700</bug_when>
    <thetext>It would be better to make CSSSelector&apos;s destructor inline.

See https://bugs.webkit.org/show_bug.cgi?id=41129#c30 for more information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254166</commentid>
    <comment_count>1</comment_count>
      <attachid>62155</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 01:51:32 -0700</bug_when>
    <thetext>Created attachment 62155
refactor-destructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254167</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-21 01:54:06 -0700</bug_when>
    <thetext>Attachment 62155 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSSelector.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254171</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 02:09:18 -0700</bug_when>
    <thetext>This style issue is expected one, the result of adapting local style.

(In reply to comment #2)
&gt; Attachment 62155 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
&gt; WebCore/css/CSSSelector.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
&gt; Total errors found: 1 in 3 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254307</commentid>
    <comment_count>4</comment_count>
      <attachid>62155</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-21 08:27:31 -0700</bug_when>
    <thetext>Comment on attachment 62155
refactor-destructor

This patch is great! Thanks for taking my suggestions.

I am not wholly happy with the use of the term &quot;children&quot; to mean the objects a selector owns. It&apos;s standard to do such a thing in a generic tree structure, but in this case neither &quot;tag history&quot; nor &quot;simple selector&quot; seems to be entirely like a child. But since I don&apos;t have better terminology to suggest, I guess you can stick with &quot;children&quot; unless you can think of something better.

&gt; +inline void CSSSelector::releaseChildrenToBag(CSSSelector* selector, CSSSelectorBag* bag)

This function could, and should, take a reference to the bag instead of a pointer.

I don&apos;t see why this is a static member function that takes a CSSSelector* rather than a non-static member function. It would be easier to read as a normal member function.

&gt; +        ~CSSSelector()
&gt; +        {
&gt; +            // We should avoid a recursive destructor call, which causes stack overflow
&gt; +            // if selectors are deeply nested.
&gt; +            if (m_hasRareData) {
&gt; +                if (!m_data.m_rareData)
&gt; +                    return;
&gt; +            } else if (!m_data.m_tagHistory)
&gt; +                return;
&gt; +            deleteChildren();
&gt; +        }

I find this comment confusing. The comment explains why we call deleteChildren instead of just calling delete directly on the objects we own, but readers of the comment probably can&apos;t figure that out. Also, the comment is above the if statement, which has a different explanation: It&apos;s optimizing the common case where the selector does not own any pointers it needs to delete.

Since this is a refactoring patch, review- so you can fix the comment and the static member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254347</commentid>
    <comment_count>5</comment_count>
      <attachid>62196</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 09:36:46 -0700</bug_when>
    <thetext>Created attachment 62196
refactor-destructor-2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254350</commentid>
    <comment_count>6</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 09:40:45 -0700</bug_when>
    <thetext>I&apos;ve not noticed that you&apos;ve already reviewed the previous patch. Please ignore this patch.

(In reply to comment #5)
&gt; Created an attachment (id=62196) [details]
&gt; refactor-destructor-2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254639</commentid>
    <comment_count>7</comment_count>
      <attachid>62256</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 20:39:11 -0700</bug_when>
    <thetext>Created attachment 62256
refactor-destructor-3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254640</commentid>
    <comment_count>8</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 20:50:36 -0700</bug_when>
    <thetext>Hi, Darin
Thank you for the review again.

(In reply to comment #4)
&gt; (From update of attachment 62155 [details])
&gt; This patch is great! Thanks for taking my suggestions.
&gt; 
&gt; I am not wholly happy with the use of the term &quot;children&quot; to mean the objects a selector owns. It&apos;s standard to do such a thing in a generic tree structure, but in this case neither &quot;tag history&quot; nor &quot;simple selector&quot; seems to be entirely like a child. But since I don&apos;t have better terminology to suggest, I guess you can stick with &quot;children&quot; unless you can think of something better.

I agree that &apos;children&apos; is very confusing name.  I&apos;ve changed the names like:
  deleteChildren -&gt; deleteReachableSelectors
  releaseChildrenToBag -&gt; releaseOwnedSelectorsToBag

That naming might be far better than using &apos;children&apos;, I guess. It is always difficult to come up with good naming for me:).

&gt; 
&gt; &gt; +inline void CSSSelector::releaseChildrenToBag(CSSSelector* selector, CSSSelectorBag* bag)
&gt; 
&gt; This function could, and should, take a reference to the bag instead of a pointer.

Done. Thank you.

&gt; 
&gt; I don&apos;t see why this is a static member function that takes a CSSSelector* rather than a non-static member function. It would be easier to read as a normal member function.

Done. This was stupid mistake. Thank you.

&gt; 
&gt; &gt; +        ~CSSSelector()
&gt; &gt; +        {
&gt; &gt; +            // We should avoid a recursive destructor call, which causes stack overflow
&gt; &gt; +            // if selectors are deeply nested.
&gt; &gt; +            if (m_hasRareData) {
&gt; &gt; +                if (!m_data.m_rareData)
&gt; &gt; +                    return;
&gt; &gt; +            } else if (!m_data.m_tagHistory)
&gt; &gt; +                return;
&gt; &gt; +            deleteChildren();
&gt; &gt; +        }
&gt; 
&gt; I find this comment confusing. The comment explains why we call deleteChildren instead of just calling delete directly on the objects we own, but readers of the comment probably can&apos;t figure that out. Also, the comment is above the if statement, which has a different explanation: It&apos;s optimizing the common case where the selector does not own any pointers it needs to delete.
&gt; 

Done. I updated the comments. Thank you.

&gt; Since this is a refactoring patch, review- so you can fix the comment and the static member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254642</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-21 20:54:53 -0700</bug_when>
    <thetext>Attachment 62256 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSSelector.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254650</commentid>
    <comment_count>10</comment_count>
      <attachid>62256</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-21 21:35:25 -0700</bug_when>
    <thetext>Comment on attachment 62256
refactor-destructor-3

&gt; +        // rareData must be deleted here.
&gt; +        delete m_data.m_rareData;

This is not a very good comment. Good comments answer the question &quot;why&quot;, while this just states that the code is needed without giving a reason.

&gt; +            // We can not delete the owned object(s) by simply calling delete
&gt; +            // directory on them. It leads to recursive destrutor calls which

Typo here: &quot;directory&quot; but it should be &quot;directly&quot;.

Typo here: &quot;destrutor&quot; but it should be &quot;destructor&quot;.

Instead of &quot;It leads&quot; the sentence should say &quot;That would lead&quot;.

review+ because this patch is great except for the comment issues above, but I&apos;ll leave commit-queue on ? until you decide if you want to post another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254659</commentid>
    <comment_count>11</comment_count>
      <attachid>62264</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 21:59:39 -0700</bug_when>
    <thetext>Created attachment 62264
refactor-destructor-typo-fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254661</commentid>
    <comment_count>12</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-07-21 22:02:36 -0700</bug_when>
    <thetext>Thank you for the review. I&apos;ve posted another patch which only fixed the comment issues.

(In reply to comment #10)
&gt; (From update of attachment 62256 [details])
&gt; &gt; +        // rareData must be deleted here.
&gt; &gt; +        delete m_data.m_rareData;
&gt; 
&gt; This is not a very good comment. Good comments answer the question &quot;why&quot;, while this just states that the code is needed without giving a reason.

I&apos;ve removed the comment. I don&apos;t think it is important one.

&gt; 
&gt; &gt; +            // We can not delete the owned object(s) by simply calling delete
&gt; &gt; +            // directory on them. It leads to recursive destrutor calls which
&gt; 
&gt; Typo here: &quot;directory&quot; but it should be &quot;directly&quot;.
&gt; 
&gt; Typo here: &quot;destrutor&quot; but it should be &quot;destructor&quot;.
&gt; 
&gt; Instead of &quot;It leads&quot; the sentence should say &quot;That would lead&quot;.

Done. I am sorry for that. Thank you!

&gt; 
&gt; review+ because this patch is great except for the comment issues above, but I&apos;ll leave commit-queue on ? until you decide if you want to post another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254662</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-21 22:02:44 -0700</bug_when>
    <thetext>Attachment 62264 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSSelector.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254784</commentid>
    <comment_count>14</comment_count>
      <attachid>62264</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-22 07:43:21 -0700</bug_when>
    <thetext>Comment on attachment 62264
refactor-destructor-typo-fixed

Clearing flags on attachment: 62264

Committed r63892: &lt;http://trac.webkit.org/changeset/63892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254785</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-22 07:43:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62155</attachid>
            <date>2010-07-21 01:51:32 -0700</date>
            <delta_ts>2010-07-21 09:36:41 -0700</delta_ts>
            <desc>refactor-destructor</desc>
            <filename>bug-42726-20100721175130.patch</filename>
            <type>text/plain</type>
            <size>6141</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGFhZTUyYzBiODZjODIzZWM1YjJhMWEyYTViNmNmNjI4ODQxMjc1OS4uMjIxZmY5ODk5Mzk5ZGFh
NDEzZWZkMGQ1OWVmODk5NzBjNzE2MzEwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0yMCAgSGF5
YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgQ1NTU2VsZWN0b3IncyBkZXN0cnVjdG9y
IGFuZCBtYWtlIGl0IGlubGluZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI3MjYKKworICAgICAgICBSZWZhY3RvciB3aXRoIG5vIGJlaGF2aW9y
IGNoYW5nZSwgdGh1cyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JCYWc6On5DU1NTZWxlY3RvckJhZyk6
IE1ha2Ugc3VyZSB0aGUgYmFnIGlzIGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3JCYWc6OmFkZCk6IFJlbmFtZWQgZnJvbSBhcHBlbmQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpyZWxlYXNlQ2hpbGRyZW5Ub0JhZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6ZGVsZXRlQ2hpbGRyZW4pOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6On5DU1NTZWxlY3Rvcik6CisKIDIwMTAtMDct
MjAgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1z
YXZlIHZjcHJvaiBmaWxlIGFmdGVyIG5vLW9wIGVkaXQgaW4gVmlzdWFsIFN0dWRpbwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwCmluZGV4IGIxZGU0ZWNhNzJjMmE2ZWEyNTEwZmM5MzNjOGM3ZTI4MDU4MjFlZjguLjk2
NDYwMGE1N2ZkZjZjY2U2Y2JhNWJhYjMxMTk2ZjE2M2Q4MGE1N2MgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAK
QEAgLTM3LDEyICszNywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCi0vLyBBIGhlbHBlciBjbGFzcyB0byBob2xkIENTU1NlbGVjdG9y
cy4KIGNsYXNzIENTU1NlbGVjdG9yQmFnIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoK
ICAgICB+Q1NTU2VsZWN0b3JCYWcoKQogICAgIHsKLSAgICAgICAgZGVsZXRlQWxsVmFsdWVzKG1f
c3RhY2spOworICAgICAgICBBU1NFUlQoaXNFbXB0eSgpKTsKICAgICB9CiAKICAgICBib29sIGlz
RW1wdHkoKSBjb25zdApAQCAtNTAsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBt
X3N0YWNrLmlzRW1wdHkoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChQYXNzT3duUHRyPENT
U1NlbGVjdG9yPiBzZWxlY3RvcikKKyAgICB2b2lkIGFkZChQYXNzT3duUHRyPENTU1NlbGVjdG9y
PiBzZWxlY3RvcikKICAgICB7CiAgICAgICAgIGlmIChzZWxlY3RvcikKICAgICAgICAgICAgIG1f
c3RhY2suYXBwZW5kKHNlbGVjdG9yLmxlYWtQdHIoKSk7CkBAIC02OCw0NiArNjcsNiBAQCBwcml2
YXRlOgogICAgIFZlY3RvcjxDU1NTZWxlY3RvciosIDE2PiBtX3N0YWNrOwogfTsKIAotQ1NTU2Vs
ZWN0b3I6On5DU1NTZWxlY3RvcigpCi17Ci0gICAgLy8gV2Ugc2hvdWxkIGF2b2lkIGEgcmVjdXJz
aXZlIGRlc3RydWN0b3IgY2FsbCwgd2hpY2ggY2F1c2VzIHN0YWNrIG92ZXJmbG93Ci0gICAgLy8g
aWYgQ1NTIFNlbGVjdG9ycyBhcmUgZGVlcGx5IG5lc3RlZC4KLQotICAgIC8vIEVhcmx5IGV4aXQg
aWYgd2UgaGF2ZSBhbHJlYWR5IHByb2Nlc3NlZCB0aGUgY2hpbGRyZW4gb2YgdGhpcyBzZWxlY3Rv
ci4KLSAgICBpZiAobV9oYXNSYXJlRGF0YSkgewotICAgICAgICBpZiAoIW1fZGF0YS5tX3JhcmVE
YXRhKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAoIW1fZGF0YS5tX3RhZ0hp
c3RvcnkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENTU1NlbGVjdG9yQmFnIHNlbGVjdG9yc1Rv
QmVEZWxldGVkOwotICAgIGlmIChtX2hhc1JhcmVEYXRhKSB7Ci0gICAgICAgIHNlbGVjdG9yc1Rv
QmVEZWxldGVkLmFwcGVuZChtX2RhdGEubV9yYXJlRGF0YS0+bV90YWdIaXN0b3J5LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIHNlbGVjdG9yc1RvQmVEZWxldGVkLmFwcGVuZChtX2RhdGEubV9yYXJlRGF0
YS0+bV9zaW1wbGVTZWxlY3Rvci5yZWxlYXNlKCkpOwotICAgICAgICBkZWxldGUgbV9kYXRhLm1f
cmFyZURhdGE7Ci0gICAgfSBlbHNlCi0gICAgICAgIHNlbGVjdG9yc1RvQmVEZWxldGVkLmFwcGVu
ZChhZG9wdFB0cihtX2RhdGEubV90YWdIaXN0b3J5KSk7Ci0KLSAgICAvLyBUcmF2ZXJzZSB0aGUg
dHJlZSBvZiBDU1NTZWxlY3RvciBhbmQgZGVsZXRlIGVhY2ggQ1NTU2VsZWN0b3IgaXRlcmF0aXZl
bHkuCi0gICAgd2hpbGUgKCFzZWxlY3RvcnNUb0JlRGVsZXRlZC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgT3duUHRyPENTU1NlbGVjdG9yPiBzZWxlY3RvcihzZWxlY3RvcnNUb0JlRGVsZXRlZC50YWtl
QW55KCkpOwotICAgICAgICBBU1NFUlQoc2VsZWN0b3IpOwotICAgICAgICBpZiAoc2VsZWN0b3It
Pm1faGFzUmFyZURhdGEpIHsKLSAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci0+bV9kYXRhLm1f
cmFyZURhdGEpOwotICAgICAgICAgICAgc2VsZWN0b3JzVG9CZURlbGV0ZWQuYXBwZW5kKHNlbGVj
dG9yLT5tX2RhdGEubV9yYXJlRGF0YS0+bV90YWdIaXN0b3J5LnJlbGVhc2UoKSk7Ci0gICAgICAg
ICAgICBzZWxlY3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQoc2VsZWN0b3ItPm1fZGF0YS5tX3JhcmVE
YXRhLT5tX3NpbXBsZVNlbGVjdG9yLnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICBkZWxldGUgc2Vs
ZWN0b3ItPm1fZGF0YS5tX3JhcmVEYXRhOwotICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHBvaW50
ZXIgc28gdGhhdCBhIGRlc3RydWN0b3Igb2YgdGhlIHNlbGVjdG9yLCB3aGljaCBpcwotICAgICAg
ICAgICAgLy8gYWJvdXQgdG8gYmUgY2FsbGVkLCBjYW4ga25vdyB0aGUgY2hpbGRyZW4gYXJlIGFs
cmVhZHkgcHJvY2Vzc2VkLgotICAgICAgICAgICAgc2VsZWN0b3ItPm1fZGF0YS5tX3JhcmVEYXRh
ID0gMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNlbGVjdG9yc1RvQmVEZWxldGVk
LmFwcGVuZChhZG9wdFB0cihzZWxlY3Rvci0+bV9kYXRhLm1fdGFnSGlzdG9yeSkpOwotICAgICAg
ICAgICAgLy8gQ2xlYXIgdGhlIHBvaW50ZXIgZm9yIHRoZSBzYW1lIHJlYXNvbi4KLSAgICAgICAg
ICAgIHNlbGVjdG9yLT5tX2RhdGEubV90YWdIaXN0b3J5ID0gMDsKLSAgICAgICAgfQotICAgIH0K
LX0KLQogdW5zaWduZWQgaW50IENTU1NlbGVjdG9yOjpzcGVjaWZpY2l0eSgpCiB7CiAgICAgaWYg
KG1faXNGb3JQYWdlKQpAQCAtOTgwLDQgKzkzOSwzMyBAQCBib29sIENTU1NlbGVjdG9yOjpSYXJl
RGF0YTo6bWF0Y2hOdGgoaW50IGNvdW50KQogICAgIH0KIH0KIAoraW5saW5lIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnJlbGVhc2VDaGlsZHJlblRvQmFnKENTU1NlbGVjdG9yKiBzZWxlY3RvciwgQ1NTU2Vs
ZWN0b3JCYWcqIGJhZykKK3sKKyAgICBpZiAoc2VsZWN0b3ItPm1faGFzUmFyZURhdGEpIHsKKyAg
ICAgICAgQVNTRVJUKHNlbGVjdG9yLT5tX2RhdGEubV9yYXJlRGF0YSk7CisgICAgICAgIGJhZy0+
YWRkKHNlbGVjdG9yLT5tX2RhdGEubV9yYXJlRGF0YS0+bV90YWdIaXN0b3J5LnJlbGVhc2UoKSk7
CisgICAgICAgIGJhZy0+YWRkKHNlbGVjdG9yLT5tX2RhdGEubV9yYXJlRGF0YS0+bV9zaW1wbGVT
ZWxlY3Rvci5yZWxlYXNlKCkpOworICAgICAgICBkZWxldGUgc2VsZWN0b3ItPm1fZGF0YS5tX3Jh
cmVEYXRhOworICAgICAgICAvLyBDbGVhciB0aGUgcG9pbnRlciBzbyB0aGF0IGEgZGVzdHJ1Y3Rv
ciBvZiB0aGUgc2VsZWN0b3IgY2FuIGtub3cKKyAgICAgICAgLy8gdGhlIGNoaWxkcmVuIGFyZSBh
bHJlYWR5IHJlbGVhc2VkLgorICAgICAgICBzZWxlY3Rvci0+bV9kYXRhLm1fcmFyZURhdGEgPSAw
OworICAgIH0gZWxzZSB7CisgICAgICAgIGJhZy0+YWRkKGFkb3B0UHRyKHNlbGVjdG9yLT5tX2Rh
dGEubV90YWdIaXN0b3J5KSk7CisgICAgICAgIC8vIENsZWFyIHRoZSBwb2ludGVyIGZvciB0aGUg
c2FtZSByZWFzb24uCisgICAgICAgIHNlbGVjdG9yLT5tX2RhdGEubV90YWdIaXN0b3J5ID0gMDsK
KyAgICB9Cit9CisKK3ZvaWQgQ1NTU2VsZWN0b3I6OmRlbGV0ZUNoaWxkcmVuKCkKK3sKKyAgICAv
LyBUcmF2ZXJzZSB0aGUgdHJlZSBvZiBzZWxlY3RvciBhbmQgZGVsZXRlIGVhY2ggaXRlcmF0aXZl
bHkuCisgICAgQ1NTU2VsZWN0b3JCYWcgc2VsZWN0b3JzVG9CZURlbGV0ZWQ7CisgICAgcmVsZWFz
ZUNoaWxkcmVuVG9CYWcodGhpcywgJnNlbGVjdG9yc1RvQmVEZWxldGVkKTsKKyAgICB3aGlsZSAo
IXNlbGVjdG9yc1RvQmVEZWxldGVkLmlzRW1wdHkoKSkgeworICAgICAgICBPd25QdHI8Q1NTU2Vs
ZWN0b3I+IHNlbGVjdG9yKHNlbGVjdG9yc1RvQmVEZWxldGVkLnRha2VBbnkoKSk7CisgICAgICAg
IEFTU0VSVChzZWxlY3Rvcik7CisgICAgICAgIHJlbGVhc2VDaGlsZHJlblRvQmFnKHNlbGVjdG9y
LmdldCgpLCAmc2VsZWN0b3JzVG9CZURlbGV0ZWQpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNTE4ZmYyYzBmNGE4ZWJlMmJjZDY2YTZjZTI4OTMz
NjAwOWQ0ZTg2YS4uODQ4NDdiNGMyMzM1NGVkYzcwNTA0MjY1ZDAxZWNkYjUwMDk4NTQ2ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5oCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAg
IGNsYXNzIENTU1NlbGVjdG9yQmFnOworCiAgICAgLy8gdGhpcyBjbGFzcyByZXByZXNlbnRzIGEg
c2VsZWN0b3IgZm9yIGEgU3R5bGVSdWxlCiAgICAgY2xhc3MgQ1NTU2VsZWN0b3IgOiBwdWJsaWMg
Tm9uY29weWFibGUgewogICAgIHB1YmxpYzoKQEAgLTU3LDcgKzU5LDE3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgfkNTU1NlbGVjdG9yKCk7
CisgICAgICAgIH5DU1NTZWxlY3RvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFdlIHNo
b3VsZCBhdm9pZCBhIHJlY3Vyc2l2ZSBkZXN0cnVjdG9yIGNhbGwsIHdoaWNoIGNhdXNlcyBzdGFj
ayBvdmVyZmxvdworICAgICAgICAgICAgLy8gaWYgc2VsZWN0b3JzIGFyZSBkZWVwbHkgbmVzdGVk
LgorICAgICAgICAgICAgaWYgKG1faGFzUmFyZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IW1fZGF0YS5tX3JhcmVEYXRhKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKCFtX2RhdGEubV90YWdIaXN0b3J5KQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIGRlbGV0ZUNoaWxkcmVuKCk7CisgICAgICAgIH0KIAogICAgICAg
ICAvKioKICAgICAgICAgICogUmUtY3JlYXRlIHNlbGVjdG9yIHRleHQgZnJvbSBzZWxlY3Rvcidz
IGRhdGEKQEAgLTI3NSw2ICsyODcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgbV9oYXNSYXJlRGF0YSAgICAgICAgICAgIDogMTsKICAgICAgICAgYm9vbCBtX2lzRm9yUGFn
ZSAgICAgICAgICAgICAgOiAxOwogCisgICAgICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VDaGlsZHJl
blRvQmFnKENTU1NlbGVjdG9yKiwgQ1NTU2VsZWN0b3JCYWcqKTsKKyAgICAgICAgdm9pZCBkZWxl
dGVDaGlsZHJlbigpOworCiAgICAgICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5Rm9yUGFnZSgpOwog
ICAgICAgICB2b2lkIGV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62196</attachid>
            <date>2010-07-21 09:36:46 -0700</date>
            <delta_ts>2010-07-21 09:38:26 -0700</delta_ts>
            <desc>refactor-destructor-2</desc>
            <filename>bug-42726-20100722013644.patch</filename>
            <type>text/plain</type>
            <size>6058</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGFhZTUyYzBiODZjODIzZWM1YjJhMWEyYTViNmNmNjI4ODQxMjc1OS4uMjIxZmY5ODk5Mzk5ZGFh
NDEzZWZkMGQ1OWVmODk5NzBjNzE2MzEwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0yMCAgSGF5
YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgQ1NTU2VsZWN0b3IncyBkZXN0cnVjdG9y
IGFuZCBtYWtlIGl0IGlubGluZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI3MjYKKworICAgICAgICBSZWZhY3RvciB3aXRoIG5vIGJlaGF2aW9y
IGNoYW5nZSwgdGh1cyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JCYWc6On5DU1NTZWxlY3RvckJhZyk6
IE1ha2Ugc3VyZSB0aGUgYmFnIGlzIGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3JCYWc6OmFkZCk6IFJlbmFtZWQgZnJvbSBhcHBlbmQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpyZWxlYXNlQ2hpbGRyZW5Ub0JhZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6ZGVsZXRlQ2hpbGRyZW4pOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6On5DU1NTZWxlY3Rvcik6CisKIDIwMTAtMDct
MjAgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1z
YXZlIHZjcHJvaiBmaWxlIGFmdGVyIG5vLW9wIGVkaXQgaW4gVmlzdWFsIFN0dWRpbwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwCmluZGV4IGIxZGU0ZWNhNzJjMmE2ZWEyNTEwZmM5MzNjOGM3ZTI4MDU4MjFlZjguLmM2
OTA2MGQ3YjdhODFlMzNlOWI3ZWU4NDU5M2UyZWQxYTAwOTQ3MzcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAK
QEAgLTM3LDEyICszNywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCi0vLyBBIGhlbHBlciBjbGFzcyB0byBob2xkIENTU1NlbGVjdG9y
cy4KIGNsYXNzIENTU1NlbGVjdG9yQmFnIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoK
ICAgICB+Q1NTU2VsZWN0b3JCYWcoKQogICAgIHsKLSAgICAgICAgZGVsZXRlQWxsVmFsdWVzKG1f
c3RhY2spOworICAgICAgICBBU1NFUlQoaXNFbXB0eSgpKTsKICAgICB9CiAKICAgICBib29sIGlz
RW1wdHkoKSBjb25zdApAQCAtNTAsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBt
X3N0YWNrLmlzRW1wdHkoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChQYXNzT3duUHRyPENT
U1NlbGVjdG9yPiBzZWxlY3RvcikKKyAgICB2b2lkIGFkZChQYXNzT3duUHRyPENTU1NlbGVjdG9y
PiBzZWxlY3RvcikKICAgICB7CiAgICAgICAgIGlmIChzZWxlY3RvcikKICAgICAgICAgICAgIG1f
c3RhY2suYXBwZW5kKHNlbGVjdG9yLmxlYWtQdHIoKSk7CkBAIC02OCw0NiArNjcsNiBAQCBwcml2
YXRlOgogICAgIFZlY3RvcjxDU1NTZWxlY3RvciosIDE2PiBtX3N0YWNrOwogfTsKIAotQ1NTU2Vs
ZWN0b3I6On5DU1NTZWxlY3RvcigpCi17Ci0gICAgLy8gV2Ugc2hvdWxkIGF2b2lkIGEgcmVjdXJz
aXZlIGRlc3RydWN0b3IgY2FsbCwgd2hpY2ggY2F1c2VzIHN0YWNrIG92ZXJmbG93Ci0gICAgLy8g
aWYgQ1NTIFNlbGVjdG9ycyBhcmUgZGVlcGx5IG5lc3RlZC4KLQotICAgIC8vIEVhcmx5IGV4aXQg
aWYgd2UgaGF2ZSBhbHJlYWR5IHByb2Nlc3NlZCB0aGUgY2hpbGRyZW4gb2YgdGhpcyBzZWxlY3Rv
ci4KLSAgICBpZiAobV9oYXNSYXJlRGF0YSkgewotICAgICAgICBpZiAoIW1fZGF0YS5tX3JhcmVE
YXRhKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAoIW1fZGF0YS5tX3RhZ0hp
c3RvcnkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENTU1NlbGVjdG9yQmFnIHNlbGVjdG9yc1Rv
QmVEZWxldGVkOwotICAgIGlmIChtX2hhc1JhcmVEYXRhKSB7Ci0gICAgICAgIHNlbGVjdG9yc1Rv
QmVEZWxldGVkLmFwcGVuZChtX2RhdGEubV9yYXJlRGF0YS0+bV90YWdIaXN0b3J5LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIHNlbGVjdG9yc1RvQmVEZWxldGVkLmFwcGVuZChtX2RhdGEubV9yYXJlRGF0
YS0+bV9zaW1wbGVTZWxlY3Rvci5yZWxlYXNlKCkpOwotICAgICAgICBkZWxldGUgbV9kYXRhLm1f
cmFyZURhdGE7Ci0gICAgfSBlbHNlCi0gICAgICAgIHNlbGVjdG9yc1RvQmVEZWxldGVkLmFwcGVu
ZChhZG9wdFB0cihtX2RhdGEubV90YWdIaXN0b3J5KSk7Ci0KLSAgICAvLyBUcmF2ZXJzZSB0aGUg
dHJlZSBvZiBDU1NTZWxlY3RvciBhbmQgZGVsZXRlIGVhY2ggQ1NTU2VsZWN0b3IgaXRlcmF0aXZl
bHkuCi0gICAgd2hpbGUgKCFzZWxlY3RvcnNUb0JlRGVsZXRlZC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgT3duUHRyPENTU1NlbGVjdG9yPiBzZWxlY3RvcihzZWxlY3RvcnNUb0JlRGVsZXRlZC50YWtl
QW55KCkpOwotICAgICAgICBBU1NFUlQoc2VsZWN0b3IpOwotICAgICAgICBpZiAoc2VsZWN0b3It
Pm1faGFzUmFyZURhdGEpIHsKLSAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci0+bV9kYXRhLm1f
cmFyZURhdGEpOwotICAgICAgICAgICAgc2VsZWN0b3JzVG9CZURlbGV0ZWQuYXBwZW5kKHNlbGVj
dG9yLT5tX2RhdGEubV9yYXJlRGF0YS0+bV90YWdIaXN0b3J5LnJlbGVhc2UoKSk7Ci0gICAgICAg
ICAgICBzZWxlY3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQoc2VsZWN0b3ItPm1fZGF0YS5tX3JhcmVE
YXRhLT5tX3NpbXBsZVNlbGVjdG9yLnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICBkZWxldGUgc2Vs
ZWN0b3ItPm1fZGF0YS5tX3JhcmVEYXRhOwotICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHBvaW50
ZXIgc28gdGhhdCBhIGRlc3RydWN0b3Igb2YgdGhlIHNlbGVjdG9yLCB3aGljaCBpcwotICAgICAg
ICAgICAgLy8gYWJvdXQgdG8gYmUgY2FsbGVkLCBjYW4ga25vdyB0aGUgY2hpbGRyZW4gYXJlIGFs
cmVhZHkgcHJvY2Vzc2VkLgotICAgICAgICAgICAgc2VsZWN0b3ItPm1fZGF0YS5tX3JhcmVEYXRh
ID0gMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNlbGVjdG9yc1RvQmVEZWxldGVk
LmFwcGVuZChhZG9wdFB0cihzZWxlY3Rvci0+bV9kYXRhLm1fdGFnSGlzdG9yeSkpOwotICAgICAg
ICAgICAgLy8gQ2xlYXIgdGhlIHBvaW50ZXIgZm9yIHRoZSBzYW1lIHJlYXNvbi4KLSAgICAgICAg
ICAgIHNlbGVjdG9yLT5tX2RhdGEubV90YWdIaXN0b3J5ID0gMDsKLSAgICAgICAgfQotICAgIH0K
LX0KLQogdW5zaWduZWQgaW50IENTU1NlbGVjdG9yOjpzcGVjaWZpY2l0eSgpCiB7CiAgICAgaWYg
KG1faXNGb3JQYWdlKQpAQCAtOTgwLDQgKzkzOSwzMyBAQCBib29sIENTU1NlbGVjdG9yOjpSYXJl
RGF0YTo6bWF0Y2hOdGgoaW50IGNvdW50KQogICAgIH0KIH0KIAoraW5saW5lIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnJlbGVhc2VDaGlsZHJlblRvQmFnKENTU1NlbGVjdG9yQmFnKiBiYWcpCit7CisgICAg
aWYgKG1faGFzUmFyZURhdGEpIHsKKyAgICAgICAgQVNTRVJUKG1fZGF0YS5tX3JhcmVEYXRhKTsK
KyAgICAgICAgYmFnLT5hZGQobV9kYXRhLm1fcmFyZURhdGEtPm1fdGFnSGlzdG9yeS5yZWxlYXNl
KCkpOworICAgICAgICBiYWctPmFkZChtX2RhdGEubV9yYXJlRGF0YS0+bV9zaW1wbGVTZWxlY3Rv
ci5yZWxlYXNlKCkpOworICAgICAgICBkZWxldGUgbV9kYXRhLm1fcmFyZURhdGE7CisgICAgICAg
IC8vIENsZWFyIHRoZSBwb2ludGVyIHNvIHRoYXQgYSBkZXN0cnVjdG9yIG9mIHRoaXMgc2VsZWN0
b3IgY2FuIGtub3cKKyAgICAgICAgLy8gdGhlIGNoaWxkcmVuIGFyZSBhbHJlYWR5IHJlbGVhc2Vk
LgorICAgICAgICBtX2RhdGEubV9yYXJlRGF0YSA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
YmFnLT5hZGQoYWRvcHRQdHIobV9kYXRhLm1fdGFnSGlzdG9yeSkpOworICAgICAgICAvLyBDbGVh
ciB0aGUgcG9pbnRlciBmb3IgdGhlIHNhbWUgcmVhc29uLgorICAgICAgICBtX2RhdGEubV90YWdI
aXN0b3J5ID0gMDsKKyAgICB9Cit9CisKK3ZvaWQgQ1NTU2VsZWN0b3I6OmRlbGV0ZURlc2NlbmRh
bnRTZWxlY3RvcnMoKQoreworICAgIC8vIFRyYXZlcnNlIHRoZSB0cmVlIG9mIHNlbGVjdG9yIGFu
ZCBkZWxldGUgZWFjaCBkZWNlbmRhbnQgc2VsZWN0b3IgaXRlcmF0aXZlbHkuCisgICAgQ1NTU2Vs
ZWN0b3JCYWcgc2VsZWN0b3JzVG9CZURlbGV0ZWQ7CisgICAgcmVsZWFzZUNoaWxkcmVuVG9CYWco
JnNlbGVjdG9yc1RvQmVEZWxldGVkKTsKKyAgICB3aGlsZSAoIXNlbGVjdG9yc1RvQmVEZWxldGVk
LmlzRW1wdHkoKSkgeworICAgICAgICBPd25QdHI8Q1NTU2VsZWN0b3I+IHNlbGVjdG9yKHNlbGVj
dG9yc1RvQmVEZWxldGVkLnRha2VBbnkoKSk7CisgICAgICAgIEFTU0VSVChzZWxlY3Rvcik7Cisg
ICAgICAgIHNlbGVjdG9yLT5yZWxlYXNlQ2hpbGRyZW5Ub0JhZygmc2VsZWN0b3JzVG9CZURlbGV0
ZWQpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXgg
NTE4ZmYyYzBmNGE4ZWJlMmJjZDY2YTZjZTI4OTMzNjAwOWQ0ZTg2YS4uMDAwMWIyYjIxYWEwNzY5
MjUyMjM4ZjFkMGNjODYwOWFhZmZmZDgxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0zMCw2ICszMCw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIENTU1NlbGVjdG9yQmFnOworCiAg
ICAgLy8gdGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2VsZWN0b3IgZm9yIGEgU3R5bGVSdWxlCiAg
ICAgY2xhc3MgQ1NTU2VsZWN0b3IgOiBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoK
QEAgLTU3LDcgKzU5LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAg
ICB9CiAKLSAgICAgICAgfkNTU1NlbGVjdG9yKCk7CisgICAgICAgIH5DU1NTZWxlY3RvcigpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBhdm9pZCBhIHJlY3Vyc2l2ZSBkZXN0
cnVjdG9yIGNhbGwsIHdoaWNoIGNhdXNlcyBzdGFjayBvdmVyZmxvdworICAgICAgICAgICAgLy8g
aWYgc2VsZWN0b3JzIGFyZSBkZWVwbHkgbmVzdGVkLgorICAgICAgICAgICAgaWYgKG1faGFzUmFy
ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1fZGF0YS5tX3JhcmVEYXRhKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFtX2RhdGEubV90
YWdIaXN0b3J5KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGRlbGV0ZURl
c2NlbmRhbnRTZWxlY3RvcnMoKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8qKgogICAgICAgICAg
KiBSZS1jcmVhdGUgc2VsZWN0b3IgdGV4dCBmcm9tIHNlbGVjdG9yJ3MgZGF0YQpAQCAtMjc1LDYg
KzI4Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hhc1JhcmVEYXRh
ICAgICAgICAgICAgOiAxOwogICAgICAgICBib29sIG1faXNGb3JQYWdlICAgICAgICAgICAgICA6
IDE7CiAKKyAgICAgICAgdm9pZCByZWxlYXNlQ2hpbGRyZW5Ub0JhZyhDU1NTZWxlY3RvckJhZyop
OworICAgICAgICB2b2lkIGRlbGV0ZURlc2NlbmRhbnRTZWxlY3RvcnMoKTsKKwogICAgICAgICB1
bnNpZ25lZCBzcGVjaWZpY2l0eUZvclBhZ2UoKTsKICAgICAgICAgdm9pZCBleHRyYWN0UHNldWRv
VHlwZSgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62256</attachid>
            <date>2010-07-21 20:39:11 -0700</date>
            <delta_ts>2010-07-21 21:59:34 -0700</delta_ts>
            <desc>refactor-destructor-3</desc>
            <filename>bug-42726-20100722123909.patch</filename>
            <type>text/plain</type>
            <size>6283</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGFhZTUyYzBiODZjODIzZWM1YjJhMWEyYTViNmNmNjI4ODQxMjc1OS4uNjBjNDY4ZDAzNWRkYTQx
YTlkM2JjMWY2MWU5ODk1M2EyNTU4NzU5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0yMSAgSGF5
YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgQ1NTU2VsZWN0b3IncyBkZXN0cnVjdG9y
IGFuZCBtYWtlIGl0IGlubGluZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI3MjYKKworICAgICAgICBSZWZhY3RvciB3aXRoIG5vIGJlaGF2aW9y
IGNoYW5nZSwgdGh1cyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JCYWc6On5DU1NTZWxlY3RvckJhZyk6
IE1ha2Ugc3VyZSB0aGUgYmFnIGlzIGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3JCYWc6OmFkZCk6IFJlbmFtZWQgZnJvbSBhcHBlbmQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpyZWxlYXNlT3duZWRTZWxlY3RvcnNUb0JhZyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6ZGVsZXRlUmVhY2hhYmxlU2VsZWN0b3JzKToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjp+Q1NTU2VsZWN0
b3IpOgorCiAyMDEwLTA3LTIwICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmUtc2F2ZSB2Y3Byb2ogZmlsZSBhZnRlciBuby1vcCBlZGl0IGluIFZpc3Vh
bCBTdHVkaW8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCBiMWRlNGVjYTcyYzJhNmVhMjUxMGZjOTMzYzhj
N2UyODA1ODIxZWY4Li42NmVlNWI0ZGIwNjViNDgzN2RhZGRmNDRmODVlMjZhMzhhNDk0NjVlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCkBAIC0zNywxMiArMzcsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotLy8gQSBoZWxwZXIgY2xhc3MgdG8g
aG9sZCBDU1NTZWxlY3RvcnMuCiBjbGFzcyBDU1NTZWxlY3RvckJhZyA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6CiAgICAgfkNTU1NlbGVjdG9yQmFnKCkKICAgICB7Ci0gICAgICAgIGRl
bGV0ZUFsbFZhbHVlcyhtX3N0YWNrKTsKKyAgICAgICAgQVNTRVJUKGlzRW1wdHkoKSk7CiAgICAg
fQogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKQEAgLTUwLDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbV9zdGFjay5pc0VtcHR5KCk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBl
bmQoUGFzc093blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3IpCisgICAgdm9pZCBhZGQoUGFzc093
blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3IpCiAgICAgewogICAgICAgICBpZiAoc2VsZWN0b3Ip
CiAgICAgICAgICAgICBtX3N0YWNrLmFwcGVuZChzZWxlY3Rvci5sZWFrUHRyKCkpOwpAQCAtNjgs
NDYgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q1NTU2VsZWN0b3IqLCAxNj4gbV9zdGFj
azsKIH07CiAKLUNTU1NlbGVjdG9yOjp+Q1NTU2VsZWN0b3IoKQotewotICAgIC8vIFdlIHNob3Vs
ZCBhdm9pZCBhIHJlY3Vyc2l2ZSBkZXN0cnVjdG9yIGNhbGwsIHdoaWNoIGNhdXNlcyBzdGFjayBv
dmVyZmxvdwotICAgIC8vIGlmIENTUyBTZWxlY3RvcnMgYXJlIGRlZXBseSBuZXN0ZWQuCi0KLSAg
ICAvLyBFYXJseSBleGl0IGlmIHdlIGhhdmUgYWxyZWFkeSBwcm9jZXNzZWQgdGhlIGNoaWxkcmVu
IG9mIHRoaXMgc2VsZWN0b3IuCi0gICAgaWYgKG1faGFzUmFyZURhdGEpIHsKLSAgICAgICAgaWYg
KCFtX2RhdGEubV9yYXJlRGF0YSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYg
KCFtX2RhdGEubV90YWdIaXN0b3J5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU1NTZWxlY3Rv
ckJhZyBzZWxlY3RvcnNUb0JlRGVsZXRlZDsKLSAgICBpZiAobV9oYXNSYXJlRGF0YSkgewotICAg
ICAgICBzZWxlY3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQobV9kYXRhLm1fcmFyZURhdGEtPm1fdGFn
SGlzdG9yeS5yZWxlYXNlKCkpOwotICAgICAgICBzZWxlY3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQo
bV9kYXRhLm1fcmFyZURhdGEtPm1fc2ltcGxlU2VsZWN0b3IucmVsZWFzZSgpKTsKLSAgICAgICAg
ZGVsZXRlIG1fZGF0YS5tX3JhcmVEYXRhOwotICAgIH0gZWxzZQotICAgICAgICBzZWxlY3RvcnNU
b0JlRGVsZXRlZC5hcHBlbmQoYWRvcHRQdHIobV9kYXRhLm1fdGFnSGlzdG9yeSkpOwotCi0gICAg
Ly8gVHJhdmVyc2UgdGhlIHRyZWUgb2YgQ1NTU2VsZWN0b3IgYW5kIGRlbGV0ZSBlYWNoIENTU1Nl
bGVjdG9yIGl0ZXJhdGl2ZWx5LgotICAgIHdoaWxlICghc2VsZWN0b3JzVG9CZURlbGV0ZWQuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIE93blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3Ioc2VsZWN0b3Jz
VG9CZURlbGV0ZWQudGFrZUFueSgpKTsKLSAgICAgICAgQVNTRVJUKHNlbGVjdG9yKTsKLSAgICAg
ICAgaWYgKHNlbGVjdG9yLT5tX2hhc1JhcmVEYXRhKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vs
ZWN0b3ItPm1fZGF0YS5tX3JhcmVEYXRhKTsKLSAgICAgICAgICAgIHNlbGVjdG9yc1RvQmVEZWxl
dGVkLmFwcGVuZChzZWxlY3Rvci0+bV9kYXRhLm1fcmFyZURhdGEtPm1fdGFnSGlzdG9yeS5yZWxl
YXNlKCkpOwotICAgICAgICAgICAgc2VsZWN0b3JzVG9CZURlbGV0ZWQuYXBwZW5kKHNlbGVjdG9y
LT5tX2RhdGEubV9yYXJlRGF0YS0+bV9zaW1wbGVTZWxlY3Rvci5yZWxlYXNlKCkpOwotICAgICAg
ICAgICAgZGVsZXRlIHNlbGVjdG9yLT5tX2RhdGEubV9yYXJlRGF0YTsKLSAgICAgICAgICAgIC8v
IENsZWFyIHRoZSBwb2ludGVyIHNvIHRoYXQgYSBkZXN0cnVjdG9yIG9mIHRoZSBzZWxlY3Rvciwg
d2hpY2ggaXMKLSAgICAgICAgICAgIC8vIGFib3V0IHRvIGJlIGNhbGxlZCwgY2FuIGtub3cgdGhl
IGNoaWxkcmVuIGFyZSBhbHJlYWR5IHByb2Nlc3NlZC4KLSAgICAgICAgICAgIHNlbGVjdG9yLT5t
X2RhdGEubV9yYXJlRGF0YSA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZWxl
Y3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQoYWRvcHRQdHIoc2VsZWN0b3ItPm1fZGF0YS5tX3RhZ0hp
c3RvcnkpKTsKLSAgICAgICAgICAgIC8vIENsZWFyIHRoZSBwb2ludGVyIGZvciB0aGUgc2FtZSBy
ZWFzb24uCi0gICAgICAgICAgICBzZWxlY3Rvci0+bV9kYXRhLm1fdGFnSGlzdG9yeSA9IDA7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KIHVuc2lnbmVkIGludCBDU1NTZWxlY3Rvcjo6c3BlY2lmaWNp
dHkoKQogewogICAgIGlmIChtX2lzRm9yUGFnZSkKQEAgLTk4MCw0ICs5MzksMzQgQEAgYm9vbCBD
U1NTZWxlY3Rvcjo6UmFyZURhdGE6Om1hdGNoTnRoKGludCBjb3VudCkKICAgICB9CiB9CiAKK2lu
bGluZSB2b2lkIENTU1NlbGVjdG9yOjpyZWxlYXNlT3duZWRTZWxlY3RvcnNUb0JhZyhDU1NTZWxl
Y3RvckJhZyYgYmFnKQoreworICAgIGlmIChtX2hhc1JhcmVEYXRhKSB7CisgICAgICAgIEFTU0VS
VChtX2RhdGEubV9yYXJlRGF0YSk7CisgICAgICAgIGJhZy5hZGQobV9kYXRhLm1fcmFyZURhdGEt
Pm1fdGFnSGlzdG9yeS5yZWxlYXNlKCkpOworICAgICAgICBiYWcuYWRkKG1fZGF0YS5tX3JhcmVE
YXRhLT5tX3NpbXBsZVNlbGVjdG9yLnJlbGVhc2UoKSk7CisgICAgICAgIC8vIHJhcmVEYXRhIG11
c3QgYmUgZGVsZXRlZCBoZXJlLgorICAgICAgICBkZWxldGUgbV9kYXRhLm1fcmFyZURhdGE7Cisg
ICAgICAgIC8vIENsZWFyIHRoZSBwb2ludGVyIHNvIHRoYXQgYSBkZXN0cnVjdG9yIG9mIHRoaXMg
c2VsZWN0b3Igd2lsbCBub3QKKyAgICAgICAgLy8gdHJhdmVyc2UgdGhpcyBjaGFpbi4KKyAgICAg
ICAgbV9kYXRhLm1fcmFyZURhdGEgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhZy5hZGQo
YWRvcHRQdHIobV9kYXRhLm1fdGFnSGlzdG9yeSkpOworICAgICAgICAvLyBDbGVhciB0aGUgcG9p
bnRlciBmb3IgdGhlIHNhbWUgcmVhc29uLgorICAgICAgICBtX2RhdGEubV90YWdIaXN0b3J5ID0g
MDsKKyAgICB9Cit9CisKK3ZvaWQgQ1NTU2VsZWN0b3I6OmRlbGV0ZVJlYWNoYWJsZVNlbGVjdG9y
cygpCit7CisgICAgLy8gVHJhdmVyc2UgdGhlIGNoYWluIG9mIHNlbGVjdG9ycyBhbmQgZGVsZXRl
IGVhY2ggaXRlcmF0aXZlbHkuCisgICAgQ1NTU2VsZWN0b3JCYWcgc2VsZWN0b3JzVG9CZURlbGV0
ZWQ7CisgICAgcmVsZWFzZU93bmVkU2VsZWN0b3JzVG9CYWcoc2VsZWN0b3JzVG9CZURlbGV0ZWQp
OworICAgIHdoaWxlICghc2VsZWN0b3JzVG9CZURlbGV0ZWQuaXNFbXB0eSgpKSB7CisgICAgICAg
IE93blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3Ioc2VsZWN0b3JzVG9CZURlbGV0ZWQudGFrZUFu
eSgpKTsKKyAgICAgICAgQVNTRVJUKHNlbGVjdG9yKTsKKyAgICAgICAgc2VsZWN0b3ItPnJlbGVh
c2VPd25lZFNlbGVjdG9yc1RvQmFnKHNlbGVjdG9yc1RvQmVEZWxldGVkKTsKKyAgICB9Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmggYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDUxOGZmMmMwZjRhOGViZTJi
Y2Q2NmE2Y2UyODkzMzYwMDlkNGU4NmEuLmY5NjZmMTJmYjZiZTA2N2IzY2Q2ZWEyZjFmZjE2Mzk3
OGNlNjY4ODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMzAsNiArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKKyAgICBjbGFzcyBDU1NTZWxlY3RvckJhZzsKKwogICAgIC8vIHRoaXMgY2xhc3Mg
cmVwcmVzZW50cyBhIHNlbGVjdG9yIGZvciBhIFN0eWxlUnVsZQogICAgIGNsYXNzIENTU1NlbGVj
dG9yIDogcHVibGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CkBAIC01Nyw3ICs1OSwyMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIH5D
U1NTZWxlY3RvcigpOworICAgICAgICB+Q1NTU2VsZWN0b3IoKQorICAgICAgICB7CisgICAgICAg
ICAgICAvLyBFeGl0IGlmIHRoaXMgc2VsZWN0b3IgZG9lcyBub3Qgb3duIGFueSBvYmplY3RzIHRv
IGJlIGRlbGV0ZWQuCisgICAgICAgICAgICBpZiAobV9oYXNSYXJlRGF0YSkgeworICAgICAgICAg
ICAgICAgIGlmICghbV9kYXRhLm1fcmFyZURhdGEpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIW1fZGF0YS5tX3RhZ0hpc3RvcnkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAvLyBXZSBjYW4gbm90IGRlbGV0ZSB0aGUg
b3duZWQgb2JqZWN0KHMpIGJ5IHNpbXBseSBjYWxsaW5nIGRlbGV0ZQorICAgICAgICAgICAgLy8g
ZGlyZWN0b3J5IG9uIHRoZW0uIEl0IGxlYWRzIHRvIHJlY3Vyc2l2ZSBkZXN0cnV0b3IgY2FsbHMg
d2hpY2gKKyAgICAgICAgICAgIC8vIG1pZ2h0IGNhdXNlIHN0YWNrIG92ZXJmbG93LiBXZSBoYXZl
IHRvIGRlbGV0ZSB0aGVtIGl0ZXJhdGl2ZWx5LgorICAgICAgICAgICAgZGVsZXRlUmVhY2hhYmxl
U2VsZWN0b3JzKCk7CisgICAgICAgIH0KIAogICAgICAgICAvKioKICAgICAgICAgICogUmUtY3Jl
YXRlIHNlbGVjdG9yIHRleHQgZnJvbSBzZWxlY3RvcidzIGRhdGEKQEAgLTI3NSw2ICsyOTAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9oYXNSYXJlRGF0YSAgICAgICAg
ICAgIDogMTsKICAgICAgICAgYm9vbCBtX2lzRm9yUGFnZSAgICAgICAgICAgICAgOiAxOwogCisg
ICAgICAgIHZvaWQgcmVsZWFzZU93bmVkU2VsZWN0b3JzVG9CYWcoQ1NTU2VsZWN0b3JCYWcmKTsK
KyAgICAgICAgdm9pZCBkZWxldGVSZWFjaGFibGVTZWxlY3RvcnMoKTsKKwogICAgICAgICB1bnNp
Z25lZCBzcGVjaWZpY2l0eUZvclBhZ2UoKTsKICAgICAgICAgdm9pZCBleHRyYWN0UHNldWRvVHlw
ZSgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62264</attachid>
            <date>2010-07-21 21:59:39 -0700</date>
            <delta_ts>2010-07-22 07:43:21 -0700</delta_ts>
            <desc>refactor-destructor-typo-fixed</desc>
            <filename>bug-42726-20100722135937.patch</filename>
            <type>text/plain</type>
            <size>6263</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGFhZTUyYzBiODZjODIzZWM1YjJhMWEyYTViNmNmNjI4ODQxMjc1OS4uNjBjNDY4ZDAzNWRkYTQx
YTlkM2JjMWY2MWU5ODk1M2EyNTU4NzU5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0yMSAgSGF5
YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgQ1NTU2VsZWN0b3IncyBkZXN0cnVjdG9y
IGFuZCBtYWtlIGl0IGlubGluZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI3MjYKKworICAgICAgICBSZWZhY3RvciB3aXRoIG5vIGJlaGF2aW9y
IGNoYW5nZSwgdGh1cyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JCYWc6On5DU1NTZWxlY3RvckJhZyk6
IE1ha2Ugc3VyZSB0aGUgYmFnIGlzIGVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3JCYWc6OmFkZCk6IFJlbmFtZWQgZnJvbSBhcHBlbmQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpyZWxlYXNlT3duZWRTZWxlY3RvcnNUb0JhZyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6ZGVsZXRlUmVhY2hhYmxlU2VsZWN0b3JzKToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjp+Q1NTU2VsZWN0
b3IpOgorCiAyMDEwLTA3LTIwICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmUtc2F2ZSB2Y3Byb2ogZmlsZSBhZnRlciBuby1vcCBlZGl0IGluIFZpc3Vh
bCBTdHVkaW8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCBiMWRlNGVjYTcyYzJhNmVhMjUxMGZjOTMzYzhj
N2UyODA1ODIxZWY4Li5mYWNjZTgzYzVhNGRkNDhhZDQ0OTU4M2ViZTZlYTM0Nzg2NmU5MmJiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCkBAIC0zNywxMiArMzcsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotLy8gQSBoZWxwZXIgY2xhc3MgdG8g
aG9sZCBDU1NTZWxlY3RvcnMuCiBjbGFzcyBDU1NTZWxlY3RvckJhZyA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6CiAgICAgfkNTU1NlbGVjdG9yQmFnKCkKICAgICB7Ci0gICAgICAgIGRl
bGV0ZUFsbFZhbHVlcyhtX3N0YWNrKTsKKyAgICAgICAgQVNTRVJUKGlzRW1wdHkoKSk7CiAgICAg
fQogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKQEAgLTUwLDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbV9zdGFjay5pc0VtcHR5KCk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBl
bmQoUGFzc093blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3IpCisgICAgdm9pZCBhZGQoUGFzc093
blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3IpCiAgICAgewogICAgICAgICBpZiAoc2VsZWN0b3Ip
CiAgICAgICAgICAgICBtX3N0YWNrLmFwcGVuZChzZWxlY3Rvci5sZWFrUHRyKCkpOwpAQCAtNjgs
NDYgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q1NTU2VsZWN0b3IqLCAxNj4gbV9zdGFj
azsKIH07CiAKLUNTU1NlbGVjdG9yOjp+Q1NTU2VsZWN0b3IoKQotewotICAgIC8vIFdlIHNob3Vs
ZCBhdm9pZCBhIHJlY3Vyc2l2ZSBkZXN0cnVjdG9yIGNhbGwsIHdoaWNoIGNhdXNlcyBzdGFjayBv
dmVyZmxvdwotICAgIC8vIGlmIENTUyBTZWxlY3RvcnMgYXJlIGRlZXBseSBuZXN0ZWQuCi0KLSAg
ICAvLyBFYXJseSBleGl0IGlmIHdlIGhhdmUgYWxyZWFkeSBwcm9jZXNzZWQgdGhlIGNoaWxkcmVu
IG9mIHRoaXMgc2VsZWN0b3IuCi0gICAgaWYgKG1faGFzUmFyZURhdGEpIHsKLSAgICAgICAgaWYg
KCFtX2RhdGEubV9yYXJlRGF0YSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYg
KCFtX2RhdGEubV90YWdIaXN0b3J5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU1NTZWxlY3Rv
ckJhZyBzZWxlY3RvcnNUb0JlRGVsZXRlZDsKLSAgICBpZiAobV9oYXNSYXJlRGF0YSkgewotICAg
ICAgICBzZWxlY3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQobV9kYXRhLm1fcmFyZURhdGEtPm1fdGFn
SGlzdG9yeS5yZWxlYXNlKCkpOwotICAgICAgICBzZWxlY3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQo
bV9kYXRhLm1fcmFyZURhdGEtPm1fc2ltcGxlU2VsZWN0b3IucmVsZWFzZSgpKTsKLSAgICAgICAg
ZGVsZXRlIG1fZGF0YS5tX3JhcmVEYXRhOwotICAgIH0gZWxzZQotICAgICAgICBzZWxlY3RvcnNU
b0JlRGVsZXRlZC5hcHBlbmQoYWRvcHRQdHIobV9kYXRhLm1fdGFnSGlzdG9yeSkpOwotCi0gICAg
Ly8gVHJhdmVyc2UgdGhlIHRyZWUgb2YgQ1NTU2VsZWN0b3IgYW5kIGRlbGV0ZSBlYWNoIENTU1Nl
bGVjdG9yIGl0ZXJhdGl2ZWx5LgotICAgIHdoaWxlICghc2VsZWN0b3JzVG9CZURlbGV0ZWQuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIE93blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3Ioc2VsZWN0b3Jz
VG9CZURlbGV0ZWQudGFrZUFueSgpKTsKLSAgICAgICAgQVNTRVJUKHNlbGVjdG9yKTsKLSAgICAg
ICAgaWYgKHNlbGVjdG9yLT5tX2hhc1JhcmVEYXRhKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vs
ZWN0b3ItPm1fZGF0YS5tX3JhcmVEYXRhKTsKLSAgICAgICAgICAgIHNlbGVjdG9yc1RvQmVEZWxl
dGVkLmFwcGVuZChzZWxlY3Rvci0+bV9kYXRhLm1fcmFyZURhdGEtPm1fdGFnSGlzdG9yeS5yZWxl
YXNlKCkpOwotICAgICAgICAgICAgc2VsZWN0b3JzVG9CZURlbGV0ZWQuYXBwZW5kKHNlbGVjdG9y
LT5tX2RhdGEubV9yYXJlRGF0YS0+bV9zaW1wbGVTZWxlY3Rvci5yZWxlYXNlKCkpOwotICAgICAg
ICAgICAgZGVsZXRlIHNlbGVjdG9yLT5tX2RhdGEubV9yYXJlRGF0YTsKLSAgICAgICAgICAgIC8v
IENsZWFyIHRoZSBwb2ludGVyIHNvIHRoYXQgYSBkZXN0cnVjdG9yIG9mIHRoZSBzZWxlY3Rvciwg
d2hpY2ggaXMKLSAgICAgICAgICAgIC8vIGFib3V0IHRvIGJlIGNhbGxlZCwgY2FuIGtub3cgdGhl
IGNoaWxkcmVuIGFyZSBhbHJlYWR5IHByb2Nlc3NlZC4KLSAgICAgICAgICAgIHNlbGVjdG9yLT5t
X2RhdGEubV9yYXJlRGF0YSA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZWxl
Y3RvcnNUb0JlRGVsZXRlZC5hcHBlbmQoYWRvcHRQdHIoc2VsZWN0b3ItPm1fZGF0YS5tX3RhZ0hp
c3RvcnkpKTsKLSAgICAgICAgICAgIC8vIENsZWFyIHRoZSBwb2ludGVyIGZvciB0aGUgc2FtZSBy
ZWFzb24uCi0gICAgICAgICAgICBzZWxlY3Rvci0+bV9kYXRhLm1fdGFnSGlzdG9yeSA9IDA7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KIHVuc2lnbmVkIGludCBDU1NTZWxlY3Rvcjo6c3BlY2lmaWNp
dHkoKQogewogICAgIGlmIChtX2lzRm9yUGFnZSkKQEAgLTk4MCw0ICs5MzksMzMgQEAgYm9vbCBD
U1NTZWxlY3Rvcjo6UmFyZURhdGE6Om1hdGNoTnRoKGludCBjb3VudCkKICAgICB9CiB9CiAKK2lu
bGluZSB2b2lkIENTU1NlbGVjdG9yOjpyZWxlYXNlT3duZWRTZWxlY3RvcnNUb0JhZyhDU1NTZWxl
Y3RvckJhZyYgYmFnKQoreworICAgIGlmIChtX2hhc1JhcmVEYXRhKSB7CisgICAgICAgIEFTU0VS
VChtX2RhdGEubV9yYXJlRGF0YSk7CisgICAgICAgIGJhZy5hZGQobV9kYXRhLm1fcmFyZURhdGEt
Pm1fdGFnSGlzdG9yeS5yZWxlYXNlKCkpOworICAgICAgICBiYWcuYWRkKG1fZGF0YS5tX3JhcmVE
YXRhLT5tX3NpbXBsZVNlbGVjdG9yLnJlbGVhc2UoKSk7CisgICAgICAgIGRlbGV0ZSBtX2RhdGEu
bV9yYXJlRGF0YTsKKyAgICAgICAgLy8gQ2xlYXIgdGhlIHBvaW50ZXIgc28gdGhhdCBhIGRlc3Ry
dWN0b3Igb2YgdGhpcyBzZWxlY3RvciB3aWxsIG5vdAorICAgICAgICAvLyB0cmF2ZXJzZSB0aGlz
IGNoYWluLgorICAgICAgICBtX2RhdGEubV9yYXJlRGF0YSA9IDA7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgYmFnLmFkZChhZG9wdFB0cihtX2RhdGEubV90YWdIaXN0b3J5KSk7CisgICAgICAgIC8v
IENsZWFyIHRoZSBwb2ludGVyIGZvciB0aGUgc2FtZSByZWFzb24uCisgICAgICAgIG1fZGF0YS5t
X3RhZ0hpc3RvcnkgPSAwOworICAgIH0KK30KKwordm9pZCBDU1NTZWxlY3Rvcjo6ZGVsZXRlUmVh
Y2hhYmxlU2VsZWN0b3JzKCkKK3sKKyAgICAvLyBUcmF2ZXJzZSB0aGUgY2hhaW4gb2Ygc2VsZWN0
b3JzIGFuZCBkZWxldGUgZWFjaCBpdGVyYXRpdmVseS4KKyAgICBDU1NTZWxlY3RvckJhZyBzZWxl
Y3RvcnNUb0JlRGVsZXRlZDsKKyAgICByZWxlYXNlT3duZWRTZWxlY3RvcnNUb0JhZyhzZWxlY3Rv
cnNUb0JlRGVsZXRlZCk7CisgICAgd2hpbGUgKCFzZWxlY3RvcnNUb0JlRGVsZXRlZC5pc0VtcHR5
KCkpIHsKKyAgICAgICAgT3duUHRyPENTU1NlbGVjdG9yPiBzZWxlY3RvcihzZWxlY3RvcnNUb0Jl
RGVsZXRlZC50YWtlQW55KCkpOworICAgICAgICBBU1NFUlQoc2VsZWN0b3IpOworICAgICAgICBz
ZWxlY3Rvci0+cmVsZWFzZU93bmVkU2VsZWN0b3JzVG9CYWcoc2VsZWN0b3JzVG9CZURlbGV0ZWQp
OworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNTE4
ZmYyYzBmNGE4ZWJlMmJjZDY2YTZjZTI4OTMzNjAwOWQ0ZTg2YS4uMzRlNGFmMDg3ZDRmNDdmZTBj
YTNlMWRiZTgwYjhhZGNjY2JhNGVhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0zMCw2ICszMCw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIENTU1NlbGVjdG9yQmFnOworCiAgICAg
Ly8gdGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2VsZWN0b3IgZm9yIGEgU3R5bGVSdWxlCiAgICAg
Y2xhc3MgQ1NTU2VsZWN0b3IgOiBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoKQEAg
LTU3LDcgKzU5LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9
CiAKLSAgICAgICAgfkNTU1NlbGVjdG9yKCk7CisgICAgICAgIH5DU1NTZWxlY3RvcigpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIC8vIEV4aXQgaWYgdGhpcyBzZWxlY3RvciBkb2VzIG5vdCBvd24g
YW55IG9iamVjdHMgdG8gYmUgZGVsZXRlZC4KKyAgICAgICAgICAgIGlmIChtX2hhc1JhcmVEYXRh
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFtX2RhdGEubV9yYXJlRGF0YSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfSBlbHNlIGlmICghbV9kYXRhLm1fdGFnSGlz
dG9yeSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIC8vIFdlIGNhbiBu
b3QgZGVsZXRlIHRoZSBvd25lZCBvYmplY3QocykgYnkgc2ltcGx5IGNhbGxpbmcgZGVsZXRlCisg
ICAgICAgICAgICAvLyBkaXJlY3RseSBvbiB0aGVtLiBUaGF0IHdvdWxkIGxlYWQgdG8gcmVjdXJz
aXZlIGRlc3RydWN0b3IgY2FsbHMKKyAgICAgICAgICAgIC8vIHdoaWNoIG1pZ2h0IGNhdXNlIHN0
YWNrIG92ZXJmbG93LiBXZSBoYXZlIHRvIGRlbGV0ZSB0aGVtCisgICAgICAgICAgICAvLyBpdGVy
YXRpdmVseS4KKyAgICAgICAgICAgIGRlbGV0ZVJlYWNoYWJsZVNlbGVjdG9ycygpOworICAgICAg
ICB9CiAKICAgICAgICAgLyoqCiAgICAgICAgICAqIFJlLWNyZWF0ZSBzZWxlY3RvciB0ZXh0IGZy
b20gc2VsZWN0b3IncyBkYXRhCkBAIC0yNzUsNiArMjkxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1faGFzUmFyZURhdGEgICAgICAgICAgICA6IDE7CiAgICAgICAgIGJv
b2wgbV9pc0ZvclBhZ2UgICAgICAgICAgICAgIDogMTsKIAorICAgICAgICB2b2lkIHJlbGVhc2VP
d25lZFNlbGVjdG9yc1RvQmFnKENTU1NlbGVjdG9yQmFnJik7CisgICAgICAgIHZvaWQgZGVsZXRl
UmVhY2hhYmxlU2VsZWN0b3JzKCk7CisKICAgICAgICAgdW5zaWduZWQgc3BlY2lmaWNpdHlGb3JQ
YWdlKCk7CiAgICAgICAgIHZvaWQgZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>