<?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>23741</bug_id>
          
          <creation_ts>2009-02-04 14:08:46 -0800</creation_ts>
          <short_desc>StyleRareNonInheritedData::operator==() should not compare ContentData objects by pointer</short_desc>
          <delta_ts>2009-05-10 17:07:37 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://trac.webkit.org/browser/trunk/WebCore/rendering/style/StyleRareNonInheritedData.cpp#L97</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>108325</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-02-04 14:08:46 -0800</bug_when>
    <thetext>* SUMMARY
Using the power of code inspection, I discovered that StyleRareNonInheritedData::operator==() was comparing ContentData objects by pointer instead of using RenderStyle::contentDataEquivalent().

The RenderStyle::contentDataEquivalent() method needs to move to StyleRareNonInheritedData:: contentDataEquivalent() and StyleRareNonInheritedData::operator==() should start using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108383</commentid>
    <comment_count>1</comment_count>
      <attachid>27339</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-02-04 18:37:49 -0800</bug_when>
    <thetext>Created attachment 27339
Patch v1

Proposed fix.

NOTE: There may be too much const-ness in &quot;bool contentDataEquivalent(const RenderStyle* otherStyle) const&quot; now for the const_cast&lt;&gt;() constructs that must be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108384</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-02-04 18:39:42 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=27339) [review]
&gt; Patch v1
&gt; 
&gt; Proposed fix.
&gt; 
&gt; NOTE: There may be too much const-ness in &quot;bool contentDataEquivalent(const
&gt; RenderStyle* otherStyle) const&quot; now for the const_cast&lt;&gt;() constructs that must
&gt; be used.

I should also note the only reason to keep around RenderStyle:: contentDataEquivalent() is that it&apos;s used by Node::diff().


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108537</commentid>
    <comment_count>3</comment_count>
      <attachid>27339</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-05 15:29:33 -0800</bug_when>
    <thetext>Comment on attachment 27339
Patch v1

&gt; -    bool contentDataEquivalent(const RenderStyle* otherStyle) const;
&gt; +    bool contentDataEquivalent(const RenderStyle* otherStyle) const { return const_cast&lt;RenderStyle*&gt;(this)-&gt;rareNonInheritedData.access()-&gt;contentDataEquivalent(*(const_cast&lt;RenderStyle*&gt;(otherStyle)-&gt;rareNonInheritedData.access())); }

You don&apos;t want to call access() here because it&apos;s going to force the non-inherited data to be copied. Instead you can just use the -&gt; operator and * operators directly without the call to access().

review- because this needs to be changed to avoid causing memory bloat due to lost style sharing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108690</commentid>
    <comment_count>4</comment_count>
      <attachid>27411</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-02-06 13:11:17 -0800</bug_when>
    <thetext>Created attachment 27411
Patch v2

Addresses issue in Comment #3 by removing use of the DataRef::access() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108704</commentid>
    <comment_count>5</comment_count>
      <attachid>27411</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-06 13:41:57 -0800</bug_when>
    <thetext>Comment on attachment 27411
Patch v2

&gt; -    bool contentDataEquivalent(const RenderStyle* otherStyle) const;
&gt; +    bool contentDataEquivalent(const RenderStyle* otherStyle) const { return const_cast&lt;RenderStyle*&gt;(this)-&gt;rareNonInheritedData-&gt;contentDataEquivalent(*(const_cast&lt;RenderStyle*&gt;(otherStyle)-&gt;rareNonInheritedData)); }

I think this would be slightly more readable for me without the extra set of parentheses after the &quot;*&quot;.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108722</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-02-06 14:49:54 -0800</bug_when>
    <thetext>$ git svn dcommit
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/rendering/style/RenderStyle.cpp
	M	WebCore/rendering/style/RenderStyle.h
	M	WebCore/rendering/style/StyleRareNonInheritedData.cpp
	M	WebCore/rendering/style/StyleRareNonInheritedData.h
Committed r40734

http://trac.webkit.org/changeset/40734

Removed extra parens as requested in Comment #5.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120581</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-05-10 17:07:37 -0700</bug_when>
    <thetext>And a layout test:

$ git svn dcommit
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/css/compare-content-style.html
	A	LayoutTests/platform/mac/fast/css/compare-content-style-expected.txt
Committed r43474

http://trac.webkit.org/changeset/43474
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27339</attachid>
            <date>2009-02-04 18:37:49 -0800</date>
            <delta_ts>2009-02-06 13:11:17 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-23741-v1.diff</filename>
            <type>text/plain</type>
            <size>7917</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">Y29tbWl0IGZkOThjNjhmNDgzM2I1NjhmZWUwNjdkYzY2MjI1M2E2OTA2MTY3NjUKQXV0aG9yOiBE
YXZpZCBLaWx6ZXIgPGRka2lsemVyQGFwcGxlLmNvbT4KRGF0ZTogICBXZWQgRmViIDQgMTg6MzU6
NTYgMjAwOSAtMDgwMAoKICAgICAgICAgICAgQnVnIDIzNzQxOiBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhOjpvcGVyYXRvcj09KCkgc2hvdWxkIG5vdCBjb21wYXJlIENvbnRlbnREYXRhIG9iamVj
dHMgYnkgcG9pbnRlcgogICAgCiAgICAgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3NDE+CiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAgICAKICAgICAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwOgogICAgICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbnRlbnREYXRhRXF1aXZh
bGVudCk6IE1vdmVkIG1ldGhvZCB0bwogICAgICAgICAgICBXZWJDb3JlOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhIGNsYXNzLgogICAgICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgogICAgICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmNvbnRlbnREYXRh
RXF1aXZhbGVudCk6IFJlcGxhY2VkIGRlY2xhcmF0aW9uCiAgICAgICAgICAgIHdpdGggaW5saW5l
IG1ldGhvZCB0aGF0IGNhbGxzIGNvbnRlbnREYXRhRXF1aXZhbGVudCgpIG9uCiAgICAgICAgICAg
IFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEgaW5zdGVhZC4KICAgICAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KTogVGhp
cyBpcyB0aGUgYnVnIGZpeCEKICAgICAgICAgICAgUmVwbGFjZWQgcG9pbnRlciBjb21wYXJpc29u
IG9mIENvbnRlbnREYXRhIG9iamVjdHMgd2l0aCBjYWxsIHRvCiAgICAgICAgICAgIGNvbnRlbnRE
YXRhRXF1aXZhbGVudCgpLgogICAgICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6Y29udGVudERhdGFFcXVpdmFsZW50KTogQWRkZWQuCiAgICAgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKICAgICAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OmNvbnRlbnREYXRhRXF1aXZhbGVudCk6
IEFkZGVkCiAgICAgICAgICAgIGRlY2xhcmF0aW9uLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJiYzI5OS4uMWFiZWNkMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAwOS0wMi0wNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEJ1ZyAyMzc0MTogU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PSgpIHNob3VsZCBub3QgY29tcGFyZSBDb250ZW50RGF0YSBvYmplY3RzIGJ5IHBvaW50ZXIKKwor
ICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzQxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
Ojpjb250ZW50RGF0YUVxdWl2YWxlbnQpOiBNb3ZlZCBtZXRob2QgdG8KKyAgICAgICAgV2ViQ29y
ZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSBjbGFzcy4KKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpj
b250ZW50RGF0YUVxdWl2YWxlbnQpOiBSZXBsYWNlZCBkZWNsYXJhdGlvbgorICAgICAgICB3aXRo
IGlubGluZSBtZXRob2QgdGhhdCBjYWxscyBjb250ZW50RGF0YUVxdWl2YWxlbnQoKSBvbgorICAg
ICAgICBXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhIGluc3RlYWQuCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6IFRoaXMg
aXMgdGhlIGJ1ZyBmaXghCisgICAgICAgIFJlcGxhY2VkIHBvaW50ZXIgY29tcGFyaXNvbiBvZiBD
b250ZW50RGF0YSBvYmplY3RzIHdpdGggY2FsbCB0bworICAgICAgICBjb250ZW50RGF0YUVxdWl2
YWxlbnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OmNv
bnRlbnREYXRhRXF1aXZhbGVudCk6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhOjpjb250ZW50RGF0YUVxdWl2YWxlbnQpOiBBZGRlZAorICAgICAgICBk
ZWNsYXJhdGlvbi4KKwogMjAwOS0wMi0wNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIENyYXNoVHJhY2VyOiBbUkVHUkVTU0lPTl0gNTMgY3Jhc2hlcyBpbiBT
YWZhcmkgYXQgY29tLmFwcGxlLldlYkNvcmU6IFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6OmNy
ZWF0ZSArIDI3MDYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAw
OTQ0NWI5Li40YmM0NTExIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CkBAIC01MDMsMzkgKzUwMyw2IEBAIHZvaWQgUmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgp
CiAgICAgICAgIGluaGVyaXRlZC5hY2Nlc3MoKS0+Y3Vyc29yRGF0YSA9IDA7CiB9CiAKLWJvb2wg
UmVuZGVyU3R5bGU6OmNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSogb3Ro
ZXJTdHlsZSkgY29uc3QKLXsKLSAgICBDb250ZW50RGF0YSogYzEgPSByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9jb250ZW50LmdldCgpOwotICAgIENvbnRlbnREYXRhKiBjMiA9IG90aGVyU3R5bGUt
PnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2NvbnRlbnQuZ2V0KCk7Ci0KLSAgICB3aGlsZSAoYzEg
JiYgYzIpIHsKLSAgICAgICAgaWYgKGMxLT5tX3R5cGUgIT0gYzItPm1fdHlwZSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBzd2l0Y2ggKGMxLT5tX3R5cGUpIHsKLSAgICAg
ICAgICAgIGNhc2UgQ09OVEVOVF9OT05FOgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSBDT05URU5UX1RFWFQ6Ci0gICAgICAgICAgICAgICAgaWYgKCFlcXVhbChjMS0+
bV9jb250ZW50Lm1fdGV4dCwgYzItPm1fY29udGVudC5tX3RleHQpKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIENPTlRFTlRfT0JKRUNUOgotICAgICAgICAgICAgICAgIGlmICghU3R5bGVJbWFnZTo6aW1h
Z2VzRXF1aXZhbGVudChjMS0+bV9jb250ZW50Lm1faW1hZ2UsIGMyLT5tX2NvbnRlbnQubV9pbWFn
ZSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgotICAgICAgICAgICAgICAg
IGlmICgqYzEtPm1fY29udGVudC5tX2NvdW50ZXIgIT0gKmMyLT5tX2NvbnRlbnQubV9jb3VudGVy
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjMSA9IGMxLT5tX25leHQ7Ci0gICAgICAgIGMyID0g
YzItPm1fbmV4dDsKLSAgICB9Ci0KLSAgICByZXR1cm4gIWMxICYmICFjMjsKLX0KLQogdm9pZCBS
ZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50KCkKIHsKICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fY29udGVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDli
YjZiMTEuLjZlMTRhNzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAt
OTc0LDcgKzk3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgY29uc3QgQ29udGVudERhdGEq
IGNvbnRlbnREYXRhKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY29u
dGVudC5nZXQoKTsgfQotICAgIGJvb2wgY29udGVudERhdGFFcXVpdmFsZW50KGNvbnN0IFJlbmRl
clN0eWxlKiBvdGhlclN0eWxlKSBjb25zdDsKKyAgICBib29sIGNvbnRlbnREYXRhRXF1aXZhbGVu
dChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkgY29uc3QgeyByZXR1cm4gY29uc3RfY2Fz
dDxSZW5kZXJTdHlsZSo+KHRoaXMpLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y29u
dGVudERhdGFFcXVpdmFsZW50KCooY29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KG90aGVyU3R5bGUp
LT5yYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKSkpOyB9CiAgICAgdm9pZCBjbGVhckNvbnRl
bnQoKTsKICAgICB2b2lkIHNldENvbnRlbnQoU3RyaW5nSW1wbCosIGJvb2wgYWRkID0gZmFsc2Up
OwogICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+LCBib29sIGFkZCA9
IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZThjZWVlYi4uNWJmNGIzZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAg
LTIzLDcgKzIzLDEwIEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIgog
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgi
CisjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisj
aW5jbHVkZSAiU3R5bGVJbWFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwNSw3
ICsxMDgsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29u
c3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBtYXJxdWVlID09
IG8ubWFycXVlZQogICAgICAgICAmJiBtX211bHRpQ29sID09IG8ubV9tdWx0aUNvbAogICAgICAg
ICAmJiBtX3RyYW5zZm9ybSA9PSBvLm1fdHJhbnNmb3JtCi0gICAgICAgICYmIG1fY29udGVudCA9
PSBvLm1fY29udGVudAorICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAg
ICAgJiYgbV9jb3VudGVyRGlyZWN0aXZlcyA9PSBvLm1fY291bnRlckRpcmVjdGl2ZXMKICAgICAg
ICAgJiYgdXNlckRyYWcgPT0gby51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cgPT0g
by50ZXh0T3ZlcmZsb3cKQEAgLTEyNiw2ICsxMjksMzkgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8p
IGMKICAgICAgICAgOwogfQogCitib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OmNvbnRl
bnREYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjb25z
dAoreworICAgIENvbnRlbnREYXRhKiBjMSA9IG1fY29udGVudC5nZXQoKTsKKyAgICBDb250ZW50
RGF0YSogYzIgPSBvLm1fY29udGVudC5nZXQoKTsKKworICAgIHdoaWxlIChjMSAmJiBjMikgewor
ICAgICAgICBpZiAoYzEtPm1fdHlwZSAhPSBjMi0+bV90eXBlKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHN3aXRjaCAoYzEtPm1fdHlwZSkgeworICAgICAgICAgICAgY2Fz
ZSBDT05URU5UX05PTkU6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENPTlRFTlRfVEVYVDoKKyAgICAgICAgICAgICAgICBpZiAoIWVxdWFsKGMxLT5tX2NvbnRlbnQu
bV90ZXh0LCBjMi0+bV9jb250ZW50Lm1fdGV4dCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ09OVEVO
VF9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgaWYgKCFTdHlsZUltYWdlOjppbWFnZXNFcXVpdmFs
ZW50KGMxLT5tX2NvbnRlbnQubV9pbWFnZSwgYzItPm1fY29udGVudC5tX2ltYWdlKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CisgICAgICAgICAgICAgICAgaWYgKCpjMS0+
bV9jb250ZW50Lm1fY291bnRlciAhPSAqYzItPm1fY29udGVudC5tX2NvdW50ZXIpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorCisgICAgICAgIGMxID0gYzEtPm1fbmV4dDsKKyAgICAgICAgYzIgPSBjMi0+bV9uZXh0
OworICAgIH0KKworICAgIHJldHVybiAhYzEgJiYgIWMyOworfQorCiBib29sIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmIG8pIGNvbnN0CiB7CiAgICAgaWYgKCFtX2JveFNoYWRvdyAmJiBvLm1fYm94
U2hhZG93IHx8IG1fYm94U2hhZG93ICYmICFvLm1fYm94U2hhZG93KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDZjZTZh
MzMuLjI4NjMzNDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTY5LDcgKzY5LDggQEAgcHVibGljOgogCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgY29u
c3QgeyByZXR1cm4gISgqdGhpcyA9PSBvKTsgfQotIAorCisgICAgYm9vbCBjb250ZW50RGF0YUVx
dWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgY29uc3Q7CiAgICAg
Ym9vbCBzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JiBvKSBjb25zdDsKICAgICBib29sIHJlZmxlY3Rpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjb25zdDsKICAgICBib29sIGFuaW1hdGlvbkRhdGFF
cXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsK
</data>
<flag name="review"
          id="13195"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27411</attachid>
            <date>2009-02-06 13:11:17 -0800</date>
            <delta_ts>2009-02-06 13:41:57 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-23741-v2.diff</filename>
            <type>text/plain</type>
            <size>7989</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">Y29tbWl0IDliYWNiNDU1YmRhZDEyN2Y1NjFlYWVlMTczMTA0YTQ0OGY2ZGI4YjEKQXV0aG9yOiBE
YXZpZCBLaWx6ZXIgPGRka2lsemVyQGFwcGxlLmNvbT4KRGF0ZTogICBXZWQgRmViIDQgMTg6MzU6
NTYgMjAwOSAtMDgwMAoKICAgICAgICAgICAgQnVnIDIzNzQxOiBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhOjpvcGVyYXRvcj09KCkgc2hvdWxkIG5vdCBjb21wYXJlIENvbnRlbnREYXRhIG9iamVj
dHMgYnkgcG9pbnRlcgogICAgCiAgICAgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3NDE+CiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAgICAKICAgICAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwOgogICAgICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbnRlbnREYXRhRXF1aXZh
bGVudCk6IE1vdmVkIG1ldGhvZCB0bwogICAgICAgICAgICBXZWJDb3JlOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhIGNsYXNzLgogICAgICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgogICAgICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmNvbnRlbnREYXRh
RXF1aXZhbGVudCk6IFJlcGxhY2VkIGRlY2xhcmF0aW9uCiAgICAgICAgICAgIHdpdGggaW5saW5l
IG1ldGhvZCB0aGF0IGNhbGxzIGNvbnRlbnREYXRhRXF1aXZhbGVudCgpIG9uCiAgICAgICAgICAg
IFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEgaW5zdGVhZC4KICAgICAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KTogVGhp
cyBpcyB0aGUgYnVnIGZpeCEKICAgICAgICAgICAgUmVwbGFjZWQgcG9pbnRlciBjb21wYXJpc29u
IG9mIENvbnRlbnREYXRhIG9iamVjdHMgd2l0aCBjYWxsIHRvCiAgICAgICAgICAgIFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGE6OmNvbnRlbnREYXRhRXF1aXZhbGVudCgpLgogICAgICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6Y29udGVudERhdGFFcXVpdmFsZW50
KTogQWRkZWQuCiAgICAgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaDoKICAgICAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OmNvbnRlbnREYXRhRXF1aXZhbGVudCk6IEFkZGVkCiAgICAgICAgICAgIGRlY2xhcmF0aW9u
LgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZjJiYzI5OS4uMTljYzQzMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOSBAQAogMjAwOS0wMi0wNCAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCisgICAgICAgIEJ1ZyAyMzc0MTogU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSgpIHNob3VsZCBub3QgY29tcGFyZSBDb250ZW50
RGF0YSBvYmplY3RzIGJ5IHBvaW50ZXIKKworICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb250ZW50RGF0YUVxdWl2YWxlbnQpOiBNb3Zl
ZCBtZXRob2QgdG8KKyAgICAgICAgV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSBj
bGFzcy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpjb250ZW50RGF0YUVxdWl2YWxlbnQpOiBSZXBsYWNl
ZCBkZWNsYXJhdGlvbgorICAgICAgICB3aXRoIGlubGluZSBtZXRob2QgdGhhdCBjYWxscyBjb250
ZW50RGF0YUVxdWl2YWxlbnQoKSBvbgorICAgICAgICBXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhIGluc3RlYWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSk6IFRoaXMgaXMgdGhlIGJ1ZyBmaXghCisgICAgICAgIFJlcGxh
Y2VkIHBvaW50ZXIgY29tcGFyaXNvbiBvZiBDb250ZW50RGF0YSBvYmplY3RzIHdpdGggY2FsbCB0
bworICAgICAgICBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpjb250ZW50RGF0YUVxdWl2YWxl
bnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OmNvbnRl
bnREYXRhRXF1aXZhbGVudCk6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhOjpjb250ZW50RGF0YUVxdWl2YWxlbnQpOiBBZGRlZAorICAgICAgICBkZWNs
YXJhdGlvbi4KKworMjAwOS0wMi0wNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgorCiAgICAgICAgIENyYXNoVHJhY2VyOiBbUkVHUkVTU0lPTl0gNTMgY3Jhc2hlcyBpbiBTYWZh
cmkgYXQgY29tLmFwcGxlLldlYkNvcmU6IFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0
ZSArIDI3MDYKIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwOTUxND4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAwOTQ0NWI5Li40YmM0NTExIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC01MDMsMzkgKzUwMyw2IEBAIHZv
aWQgUmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiAgICAgICAgIGluaGVyaXRlZC5hY2Nl
c3MoKS0+Y3Vyc29yRGF0YSA9IDA7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OmNvbnRlbnREYXRh
RXF1aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkgY29uc3QKLXsKLSAgICBD
b250ZW50RGF0YSogYzEgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9jb250ZW50LmdldCgpOwot
ICAgIENvbnRlbnREYXRhKiBjMiA9IG90aGVyU3R5bGUtPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X2NvbnRlbnQuZ2V0KCk7Ci0KLSAgICB3aGlsZSAoYzEgJiYgYzIpIHsKLSAgICAgICAgaWYgKGMx
LT5tX3R5cGUgIT0gYzItPm1fdHlwZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBzd2l0Y2ggKGMxLT5tX3R5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9OT05F
OgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDT05URU5UX1RFWFQ6
Ci0gICAgICAgICAgICAgICAgaWYgKCFlcXVhbChjMS0+bV9jb250ZW50Lm1fdGV4dCwgYzItPm1f
Y29udGVudC5tX3RleHQpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENPTlRFTlRfT0JKRUNUOgotICAg
ICAgICAgICAgICAgIGlmICghU3R5bGVJbWFnZTo6aW1hZ2VzRXF1aXZhbGVudChjMS0+bV9jb250
ZW50Lm1faW1hZ2UsIGMyLT5tX2NvbnRlbnQubV9pbWFnZSkpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
Q09OVEVOVF9DT1VOVEVSOgotICAgICAgICAgICAgICAgIGlmICgqYzEtPm1fY29udGVudC5tX2Nv
dW50ZXIgIT0gKmMyLT5tX2NvbnRlbnQubV9jb3VudGVyKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICBjMSA9IGMxLT5tX25leHQ7Ci0gICAgICAgIGMyID0gYzItPm1fbmV4dDsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gIWMxICYmICFjMjsKLX0KLQogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50
KCkKIHsKICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY29udGVudCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDliYjZiMTEuLmVjZmQ5NzYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtOTc0LDcgKzk3NCw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnREYXRhKCkgY29uc3QgeyBy
ZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY29udGVudC5nZXQoKTsgfQotICAgIGJvb2wg
Y29udGVudERhdGFFcXVpdmFsZW50KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKSBjb25z
dDsKKyAgICBib29sIGNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSogb3Ro
ZXJTdHlsZSkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxSZW5kZXJTdHlsZSo+KHRoaXMpLT5y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+Y29udGVudERhdGFFcXVpdmFsZW50KCooY29uc3RfY2FzdDxS
ZW5kZXJTdHlsZSo+KG90aGVyU3R5bGUpLT5yYXJlTm9uSW5oZXJpdGVkRGF0YSkpOyB9CiAgICAg
dm9pZCBjbGVhckNvbnRlbnQoKTsKICAgICB2b2lkIHNldENvbnRlbnQoU3RyaW5nSW1wbCosIGJv
b2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPFN0eWxlSW1h
Z2U+LCBib29sIGFkZCA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZThjZWVlYi4uNWJmNGIzZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5jcHAKQEAgLTIzLDcgKzIzLDEwIEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oIgogCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUg
IkNvbnRlbnREYXRhLmgiCisjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1ZGUgIlJl
bmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTEwNSw3ICsxMDgsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAg
ICAmJiBtYXJxdWVlID09IG8ubWFycXVlZQogICAgICAgICAmJiBtX211bHRpQ29sID09IG8ubV9t
dWx0aUNvbAogICAgICAgICAmJiBtX3RyYW5zZm9ybSA9PSBvLm1fdHJhbnNmb3JtCi0gICAgICAg
ICYmIG1fY29udGVudCA9PSBvLm1fY29udGVudAorICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2
YWxlbnQobykKICAgICAgICAgJiYgbV9jb3VudGVyRGlyZWN0aXZlcyA9PSBvLm1fY291bnRlckRp
cmVjdGl2ZXMKICAgICAgICAgJiYgdXNlckRyYWcgPT0gby51c2VyRHJhZwogICAgICAgICAmJiB0
ZXh0T3ZlcmZsb3cgPT0gby50ZXh0T3ZlcmZsb3cKQEAgLTEyNiw2ICsxMjksMzkgQEAgYm9vbCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgOwogfQogCitib29sIFN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGE6OmNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhJiBvKSBjb25zdAoreworICAgIENvbnRlbnREYXRhKiBjMSA9IG1fY29udGVudC5nZXQo
KTsKKyAgICBDb250ZW50RGF0YSogYzIgPSBvLm1fY29udGVudC5nZXQoKTsKKworICAgIHdoaWxl
IChjMSAmJiBjMikgeworICAgICAgICBpZiAoYzEtPm1fdHlwZSAhPSBjMi0+bV90eXBlKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHN3aXRjaCAoYzEtPm1fdHlwZSkgewor
ICAgICAgICAgICAgY2FzZSBDT05URU5UX05PTkU6CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIENPTlRFTlRfVEVYVDoKKyAgICAgICAgICAgICAgICBpZiAoIWVxdWFs
KGMxLT5tX2NvbnRlbnQubV90ZXh0LCBjMi0+bV9jb250ZW50Lm1fdGV4dCkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ09OVEVOVF9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgaWYgKCFTdHlsZUltYWdl
OjppbWFnZXNFcXVpdmFsZW50KGMxLT5tX2NvbnRlbnQubV9pbWFnZSwgYzItPm1fY29udGVudC5t
X2ltYWdlKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CisgICAgICAgICAg
ICAgICAgaWYgKCpjMS0+bV9jb250ZW50Lm1fY291bnRlciAhPSAqYzItPm1fY29udGVudC5tX2Nv
dW50ZXIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGMxID0gYzEtPm1fbmV4dDsKKyAgICAgICAg
YzIgPSBjMi0+bV9uZXh0OworICAgIH0KKworICAgIHJldHVybiAhYzEgJiYgIWMyOworfQorCiBi
b29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiB7CiAgICAgaWYgKCFtX2JveFNo
YWRvdyAmJiBvLm1fYm94U2hhZG93IHx8IG1fYm94U2hhZG93ICYmICFvLm1fYm94U2hhZG93KQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCmluZGV4IDZjZTZhMzMuLjI4NjMzNDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTY5LDcgKzY5LDggQEAgcHVi
bGljOgogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEmKSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YSYgbykgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvKTsgfQotIAorCisgICAgYm9v
bCBjb250ZW50RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYg
bykgY29uc3Q7CiAgICAgYm9vbCBzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhJiBvKSBjb25zdDsKICAgICBib29sIHJlZmxlY3Rpb25EYXRhRXF1aXZh
bGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjb25zdDsKICAgICBib29s
IGFuaW1hdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEm
KSBjb25zdDsK
</data>
<flag name="review"
          id="13249"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>