<?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>144486</bug_id>
          
          <creation_ts>2015-04-30 19:07:37 -0700</creation_ts>
          <short_desc>Purge PassRefPtr from MaskImageOperation</short_desc>
          <delta_ts>2016-02-22 02:24:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1090708</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-04-30 19:07:37 -0700</bug_when>
    <thetext>Purge PassRefPtr from MaskImageOperation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090719</commentid>
    <comment_count>1</comment_count>
      <attachid>252133</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-04-30 21:39:07 -0700</bug_when>
    <thetext>Created attachment 252133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090903</commentid>
    <comment_count>2</comment_count>
      <attachid>252133</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-01 15:27:34 -0700</bug_when>
    <thetext>Comment on attachment 252133
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=252133&amp;action=review

&gt; Source/WebCore/platform/graphics/MaskImageOperation.h:51
&gt; +    static Ref&lt;MaskImageOperation&gt; create(RefPtr&lt;WebKitCSSResourceValue&gt;&amp;&amp; cssValue, const String&amp; url, const String&amp; fragment, bool isExternalDocument, RefPtr&lt;CachedResourceLoader&gt;&amp;&amp;);

Are both cssValue and CachedResourceLoader arguments that can be null? Moreover, are they objects where we are handing off ownership. If we are sharing ownership then we could just use types of raw pointers or raw references. Only need RefPtr or Ref if we are transferring ownership.

&gt; Source/WebCore/platform/graphics/MaskImageOperation.h:52
&gt; +    static Ref&lt;MaskImageOperation&gt; create(RefPtr&lt;StyleImage&gt;&amp;&amp; generatedImage);

Same question here.

&gt; Source/WebCore/platform/graphics/MaskImageOperation.h:55
&gt; +    RefPtr&lt;CSSValue&gt; cssValue();

Can this ever return null? Does this need to hand off ownership of the return value (in other words, is it ever a newly computed value rather than just returning something already stored in some data member)?

&gt; Source/WebCore/platform/graphics/MaskImageOperation.h:81
&gt; +    MaskImageOperation(RefPtr&lt;WebKitCSSResourceValue&gt;&amp;&amp; cssValue, const String&amp; url, const String&amp; fragment, bool isExternalDocument, RefPtr&lt;CachedResourceLoader&gt;&amp;&amp;);
&gt; +    MaskImageOperation(RefPtr&lt;StyleImage&gt;&amp;&amp; generatedImage);

Same questions. RefPtr&amp;&amp; is the correct type for something where we are handing off ownership and that can be null. Are these all in that category? Or should some be pointers, references, or Ref&amp;&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165400</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-02-16 16:30:57 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 252133 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=252133&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:51
&gt; &gt; +    static Ref&lt;MaskImageOperation&gt; create(RefPtr&lt;WebKitCSSResourceValue&gt;&amp;&amp; cssValue, const String&amp; url, const String&amp; fragment, bool isExternalDocument, RefPtr&lt;CachedResourceLoader&gt;&amp;&amp;);
&gt; 
&gt; Are both cssValue and CachedResourceLoader arguments that can be null?
&gt; Moreover, are they objects where we are handing off ownership. If we are
&gt; sharing ownership then we could just use types of raw pointers or raw
&gt; references. Only need RefPtr or Ref if we are transferring ownership.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:52
&gt; &gt; +    static Ref&lt;MaskImageOperation&gt; create(RefPtr&lt;StyleImage&gt;&amp;&amp; generatedImage);
&gt; 
&gt; Same question here.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:55
&gt; &gt; +    RefPtr&lt;CSSValue&gt; cssValue();
&gt; 
&gt; Can this ever return null? Does this need to hand off ownership of the
&gt; return value (in other words, is it ever a newly computed value rather than
&gt; just returning something already stored in some data member)?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:81
&gt; &gt; +    MaskImageOperation(RefPtr&lt;WebKitCSSResourceValue&gt;&amp;&amp; cssValue, const String&amp; url, const String&amp; fragment, bool isExternalDocument, RefPtr&lt;CachedResourceLoader&gt;&amp;&amp;);
&gt; &gt; +    MaskImageOperation(RefPtr&lt;StyleImage&gt;&amp;&amp; generatedImage);
&gt; 
&gt; Same questions. RefPtr&amp;&amp; is the correct type for something where we are
&gt; handing off ownership and that can be null. Are these all in that category?
&gt; Or should some be pointers, references, or Ref&amp;&amp;?

Joonghun, any update ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166974</commentid>
    <comment_count>4</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2016-02-22 02:24:56 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 252133 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=252133&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:51
&gt; &gt; &gt; +    static Ref&lt;MaskImageOperation&gt; create(RefPtr&lt;WebKitCSSResourceValue&gt;&amp;&amp; cssValue, const String&amp; url, const String&amp; fragment, bool isExternalDocument, RefPtr&lt;CachedResourceLoader&gt;&amp;&amp;);
&gt; &gt; 
&gt; &gt; Are both cssValue and CachedResourceLoader arguments that can be null?
&gt; &gt; Moreover, are they objects where we are handing off ownership. If we are
&gt; &gt; sharing ownership then we could just use types of raw pointers or raw
&gt; &gt; references. Only need RefPtr or Ref if we are transferring ownership.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:52
&gt; &gt; &gt; +    static Ref&lt;MaskImageOperation&gt; create(RefPtr&lt;StyleImage&gt;&amp;&amp; generatedImage);
&gt; &gt; 
&gt; &gt; Same question here.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:55
&gt; &gt; &gt; +    RefPtr&lt;CSSValue&gt; cssValue();
&gt; &gt; 
&gt; &gt; Can this ever return null? Does this need to hand off ownership of the
&gt; &gt; return value (in other words, is it ever a newly computed value rather than
&gt; &gt; just returning something already stored in some data member)?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MaskImageOperation.h:81
&gt; &gt; &gt; +    MaskImageOperation(RefPtr&lt;WebKitCSSResourceValue&gt;&amp;&amp; cssValue, const String&amp; url, const String&amp; fragment, bool isExternalDocument, RefPtr&lt;CachedResourceLoader&gt;&amp;&amp;);
&gt; &gt; &gt; +    MaskImageOperation(RefPtr&lt;StyleImage&gt;&amp;&amp; generatedImage);
&gt; &gt; 
&gt; &gt; Same questions. RefPtr&amp;&amp; is the correct type for something where we are
&gt; &gt; handing off ownership and that can be null. Are these all in that category?
&gt; &gt; Or should some be pointers, references, or Ref&amp;&amp;?
&gt; 
&gt; Joonghun, any update ?

MaskImageOeration related function had been removed by https://bugs.webkit.org/show_bug.cgi?id=146653.
It means that this patch doesn&apos;t valid anymore, so I resolve this bug as invalid.
By the way, I found this blog post is very helpful, https://webkit.org/blog/5381/refptr-basics/.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252133</attachid>
            <date>2015-04-30 21:39:07 -0700</date>
            <delta_ts>2015-05-01 15:27:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144486-20150501133755.patch</filename>
            <type>text/plain</type>
            <size>8153</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5NGNlMDM0NjY0NTJk
N2FiYWRjMTU2ZTU3Y2U3ZmM0MDJmMmMwMi4uYWJiMTdhMzFlMmQ3ZTgxYTljYjQ4Njc5MjkwMjBi
OGI3YThjZmY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA0LTMwICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NDg2CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0ODYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNo
YW5nZXMuCisKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRNYXNrSW1hZ2VPcGVyYXRp
b25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWFza0ltYWdlT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWFza0ltYWdlT3BlcmF0aW9uOjpNYXNrSW1hZ2VPcGVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TWFza0ltYWdlT3BlcmF0aW9uOjpjc3NWYWx1ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmg6CisKIDIwMTUtMDQtMjkgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggYXQg
V2ViQ29yZTo6RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDFkMDM0ZGMwMzI0OWQ5
YzdjZDdmMGRkYmY2YTE2YmQzZDdhNTA4OTYuLjQwZTZjYWEwODljNTBiY2Q1NGY4YTI1OTM3OTU1
OTk1Zjk0YTI0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmgKQEAgLTEwMzgsMTMgKzEwMzgsMTQgQEAgaW5saW5lIFZlY3RvcjxSZWZQdHI8TWFza0ltYWdl
T3BlcmF0aW9uPj4gU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0TWFza0ltYWcKICAgICAg
ICAgICAgICAgICBVUkwgdXJsID0gc3R5bGVSZXNvbHZlci5kb2N1bWVudCgpLmNvbXBsZXRlVVJM
KGNzc1VybCk7CiAKICAgICAgICAgICAgICAgICBib29sIGlzRXh0ZXJuYWxEb2N1bWVudCA9IFNW
R1VSSVJlZmVyZW5jZTo6aXNFeHRlcm5hbFVSSVJlZmVyZW5jZShjc3NVcmwsIHN0eWxlUmVzb2x2
ZXIuZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICAgICAgbmV3TWFza0ltYWdlID0gTWFza0ltYWdl
T3BlcmF0aW9uOjpjcmVhdGUobWFza0ltYWdlVmFsdWUsIGNzc1VybCwgdXJsLmZyYWdtZW50SWRl
bnRpZmllcigpLCBpc0V4dGVybmFsRG9jdW1lbnQsICZzdHlsZVJlc29sdmVyLmRvY3VtZW50KCku
Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CisgICAgICAgICAgICAgICAgUmVmUHRyPENhY2hlZFJl
c291cmNlTG9hZGVyPiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9ICZzdHlsZVJlc29sdmVyLmRvY3Vt
ZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKKyAgICAgICAgICAgICAgICBuZXdNYXNrSW1h
Z2UgPSBNYXNrSW1hZ2VPcGVyYXRpb246OmNyZWF0ZShtYXNrSW1hZ2VWYWx1ZS5yZWxlYXNlKCks
IGNzc1VybCwgdXJsLmZyYWdtZW50SWRlbnRpZmllcigpLCBpc0V4dGVybmFsRG9jdW1lbnQsIGNh
Y2hlZFJlc291cmNlTG9hZGVyLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgaWYgKGlzRXh0
ZXJuYWxEb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci5zdGF0ZSgp
Lm1hc2tJbWFnZXNXaXRoUGVuZGluZ1NWR0RvY3VtZW50cygpLmFwcGVuZChuZXdNYXNrSW1hZ2Up
OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKFJlZlB0
cjxTdHlsZUltYWdlPiBpbWFnZSA9IHN0eWxlUmVzb2x2ZXIuc3R5bGVJbWFnZShDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tJbWFnZSwgKm1hc2tJbm5lclZhbHVlKSkKLSAgICAgICAgICAgICAgICBuZXdN
YXNrSW1hZ2UgPSBNYXNrSW1hZ2VPcGVyYXRpb246OmNyZWF0ZShpbWFnZSk7CisgICAgICAgICAg
ICAgICAgbmV3TWFza0ltYWdlID0gTWFza0ltYWdlT3BlcmF0aW9uOjpjcmVhdGUoaW1hZ2UucmVs
ZWFzZSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBnZXQgYSB2YWxp
ZCB2YWx1ZSwgdXNlIE5vbmUgc28gd2Uga2VlcCB0aGUgY29ycmVjdCBudW1iZXIgYW5kIG9yZGVy
IG9mIG1hc2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWFza0ltYWdlT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01hc2tJbWFnZU9wZXJhdGlvbi5jcHAKaW5kZXggNDI5OWE0MDExOTBmMmQwZDdkM2IwNjdlYTk4
MzNmMmQzZDFlY2NlYy4uMzNkYWU0MDI4MmZmNzI1OTg0NDBiNjYwNzhiNjU4Yjk3ZTZiMTYwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3Bl
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NYXNrSW1h
Z2VPcGVyYXRpb24uY3BwCkBAIC00MCwzNSArNDAsMzUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1QYXNzUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gTWFza0ltYWdlT3BlcmF0aW9uOjpj
cmVhdGUoUGFzc1JlZlB0cjxXZWJLaXRDU1NSZXNvdXJjZVZhbHVlPiBjc3NWYWx1ZSwgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnQsIGJvb2wgaXNFeHRlcm5hbERvY3Vt
ZW50LCBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBjYWNoZWRSZXNvdXJjZUxvYWRl
cikKK1JlZjxNYXNrSW1hZ2VPcGVyYXRpb24+IE1hc2tJbWFnZU9wZXJhdGlvbjo6Y3JlYXRlKFJl
ZlB0cjxXZWJLaXRDU1NSZXNvdXJjZVZhbHVlPiYmIGNzc1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCwgYm9vbCBpc0V4dGVybmFsRG9jdW1lbnQsIFJlZlB0
cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4mJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE1hc2tJbWFnZU9wZXJhdGlvbihjc3NWYWx1ZSwgdXJsLCBmcmFn
bWVudCwgaXNFeHRlcm5hbERvY3VtZW50LCBjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE1hc2tJbWFnZU9wZXJhdGlvbihXVEY6Om1vdmUoY3NzVmFsdWUp
LCB1cmwsIGZyYWdtZW50LCBpc0V4dGVybmFsRG9jdW1lbnQsIFdURjo6bW92ZShjYWNoZWRSZXNv
dXJjZUxvYWRlcikpKTsKIH0KIAotUGFzc1JlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+IE1hc2tJ
bWFnZU9wZXJhdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gZ2VuZXJhdGVkSW1h
Z2UpCitSZWY8TWFza0ltYWdlT3BlcmF0aW9uPiBNYXNrSW1hZ2VPcGVyYXRpb246OmNyZWF0ZShS
ZWZQdHI8U3R5bGVJbWFnZT4mJiBnZW5lcmF0ZWRJbWFnZSkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1hc2tJbWFnZU9wZXJhdGlvbihnZW5lcmF0ZWRJbWFnZSkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE1hc2tJbWFnZU9wZXJhdGlvbihXVEY6Om1vdmUoZ2VuZXJhdGVkSW1hZ2Up
KSk7CiB9CiAKLVBhc3NSZWZQdHI8TWFza0ltYWdlT3BlcmF0aW9uPiBNYXNrSW1hZ2VPcGVyYXRp
b246OmNyZWF0ZSgpCitSZWY8TWFza0ltYWdlT3BlcmF0aW9uPiBNYXNrSW1hZ2VPcGVyYXRpb246
OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXNrSW1hZ2VPcGVyYXRpb24o
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWFza0ltYWdlT3BlcmF0aW9uKCkpOwogfQog
Ci1NYXNrSW1hZ2VPcGVyYXRpb246Ok1hc2tJbWFnZU9wZXJhdGlvbihQYXNzUmVmUHRyPFdlYktp
dENTU1Jlc291cmNlVmFsdWU+IGNzc1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiBmcmFnbWVudCwgYm9vbCBpc0V4dGVybmFsRG9jdW1lbnQsIFBhc3NSZWZQdHI8Q2FjaGVk
UmVzb3VyY2VMb2FkZXI+IGNhY2hlZFJlc291cmNlTG9hZGVyKQorTWFza0ltYWdlT3BlcmF0aW9u
OjpNYXNrSW1hZ2VPcGVyYXRpb24oUmVmUHRyPFdlYktpdENTU1Jlc291cmNlVmFsdWU+JiYgY3Nz
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50LCBib29sIGlz
RXh0ZXJuYWxEb2N1bWVudCwgUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiYmIGNhY2hlZFJl
c291cmNlTG9hZGVyKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV9mcmFnbWVudChmcmFnbWVu
dCkKICAgICAsIG1faXNFeHRlcm5hbERvY3VtZW50KGlzRXh0ZXJuYWxEb2N1bWVudCkKICAgICAs
IG1fcmVuZGVyTGF5ZXJJbWFnZUNsaWVudChudWxscHRyKQotICAgICwgbV9jc3NNYXNrSW1hZ2VW
YWx1ZShjc3NWYWx1ZSkKLSAgICAsIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpCisgICAgLCBtX2Nzc01hc2tJbWFnZVZhbHVlKFdURjo6bW92ZShjc3NWYWx1ZSkp
CisgICAgLCBtX2NhY2hlZFJlc291cmNlTG9hZGVyKFdURjo6bW92ZShjYWNoZWRSZXNvdXJjZUxv
YWRlcikpCiB7CiAgICAgQVNTRVJUKG1fY3NzTWFza0ltYWdlVmFsdWUuZ2V0KCkpOwogfQogCi1N
YXNrSW1hZ2VPcGVyYXRpb246Ok1hc2tJbWFnZU9wZXJhdGlvbihQYXNzUmVmUHRyPFN0eWxlSW1h
Z2U+IGdlbmVyYXRlZEltYWdlKQorTWFza0ltYWdlT3BlcmF0aW9uOjpNYXNrSW1hZ2VPcGVyYXRp
b24oUmVmUHRyPFN0eWxlSW1hZ2U+JiYgZ2VuZXJhdGVkSW1hZ2UpCiAgICAgOiBtX2lzRXh0ZXJu
YWxEb2N1bWVudChmYWxzZSkKLSAgICAsIG1fc3R5bGVJbWFnZShnZW5lcmF0ZWRJbWFnZSkKKyAg
ICAsIG1fc3R5bGVJbWFnZShXVEY6Om1vdmUoZ2VuZXJhdGVkSW1hZ2UpKQogICAgICwgbV9yZW5k
ZXJMYXllckltYWdlQ2xpZW50KG51bGxwdHIpCiB7CiB9CkBAIC0xMDIsNyArMTAyLDcgQEAgYm9v
bCBNYXNrSW1hZ2VPcGVyYXRpb246OmlzQ1NTVmFsdWVOb25lKCkgY29uc3QKICAgICByZXR1cm4g
bV9jc3NNYXNrSW1hZ2VWYWx1ZS0+aXNDU1NWYWx1ZU5vbmUoKTsKIH0KIAotUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gTWFza0ltYWdlT3BlcmF0aW9uOjpjc3NWYWx1ZSgpCitSZWZQdHI8Q1NTVmFsdWU+
IE1hc2tJbWFnZU9wZXJhdGlvbjo6Y3NzVmFsdWUoKQogewogICAgIGlmIChpbWFnZSgpKQogICAg
ICAgICByZXR1cm4gaW1hZ2UoKS0+Y3NzVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01hc2tJbWFnZU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmgKaW5kZXggMjA5ZWNlMmI0
ZmNiMjJlNWE3NGJkNzlmOGYwM2UyNDA4OTNhMDNhOS4uNGE0MjkzMDQyY2ZjOWFjMzY3NDQ4Yjc4
ZWE0Zjg1YWZiMWNmZmVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmgKQEAgLTQ4LDExICs0OCwxMSBAQCBjbGFzcyBX
ZWJLaXRDU1NSZXNvdXJjZVZhbHVlOwogCiBjbGFzcyBNYXNrSW1hZ2VPcGVyYXRpb24gZmluYWwg
OiBwdWJsaWMgUmVmQ291bnRlZDxNYXNrSW1hZ2VPcGVyYXRpb24+LCBwdWJsaWMgQ2FjaGVkU1ZH
RG9jdW1lbnRDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hc2tJbWFn
ZU9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4gY3Nz
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50LCBib29sIGlz
RXh0ZXJuYWxEb2N1bWVudCwgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4pOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8
U3R5bGVJbWFnZT4gZ2VuZXJhdGVkSW1hZ2UpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hc2tJ
bWFnZU9wZXJhdGlvbj4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxNYXNrSW1hZ2VPcGVyYXRp
b24+IGNyZWF0ZShSZWZQdHI8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4mJiBjc3NWYWx1ZSwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnQsIGJvb2wgaXNFeHRlcm5hbERv
Y3VtZW50LCBSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+JiYpOworICAgIHN0YXRpYyBSZWY8
TWFza0ltYWdlT3BlcmF0aW9uPiBjcmVhdGUoUmVmUHRyPFN0eWxlSW1hZ2U+JiYgZ2VuZXJhdGVk
SW1hZ2UpOworICAgIHN0YXRpYyBSZWY8TWFza0ltYWdlT3BlcmF0aW9uPiBjcmVhdGUoKTsKIAot
ICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCk7CisgICAgUmVmUHRyPENTU1ZhbHVl
PiBjc3NWYWx1ZSgpOwogCiAgICAgdmlydHVhbCB+TWFza0ltYWdlT3BlcmF0aW9uKCk7CiAgICAg
CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9mcmFnbWVudDsgfQogICAgIGJvb2wgaXNFeHRlcm5hbERvY3VtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9pc0V4dGVybmFsRG9jdW1lbnQ7IH0KICAgICBTdHlsZUltYWdl
KiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVJbWFnZS5nZXQoKTsgfQotICAgIHZvaWQg
c2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSkgeyBtX3N0eWxlSW1hZ2UgPSBp
bWFnZTsgfQorICAgIHZvaWQgc2V0SW1hZ2UoUmVmUHRyPFN0eWxlSW1hZ2U+JiYgaW1hZ2UpIHsg
bV9zdHlsZUltYWdlID0gV1RGOjptb3ZlKGltYWdlKTsgfQogICAgIHZvaWQgc2V0UmVuZGVyTGF5
ZXJJbWFnZUNsaWVudChDYWNoZWRJbWFnZUNsaWVudCopOwogICAgIHZvaWQgYWRkUmVuZGVyZXJJ
bWFnZUNsaWVudChSZW5kZXJFbGVtZW50Kik7CiAgICAgdm9pZCByZW1vdmVSZW5kZXJlckltYWdl
Q2xpZW50KFJlbmRlckVsZW1lbnQqKTsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogCiBw
cml2YXRlOgotICAgIE1hc2tJbWFnZU9wZXJhdGlvbihQYXNzUmVmUHRyPFdlYktpdENTU1Jlc291
cmNlVmFsdWU+IGNzc1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFn
bWVudCwgYm9vbCBpc0V4dGVybmFsRG9jdW1lbnQsIFBhc3NSZWZQdHI8Q2FjaGVkUmVzb3VyY2VM
b2FkZXI+KTsKLSAgICBNYXNrSW1hZ2VPcGVyYXRpb24oUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBn
ZW5lcmF0ZWRJbWFnZSk7CisgICAgTWFza0ltYWdlT3BlcmF0aW9uKFJlZlB0cjxXZWJLaXRDU1NS
ZXNvdXJjZVZhbHVlPiYmIGNzc1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBmcmFnbWVudCwgYm9vbCBpc0V4dGVybmFsRG9jdW1lbnQsIFJlZlB0cjxDYWNoZWRSZXNvdXJj
ZUxvYWRlcj4mJik7CisgICAgTWFza0ltYWdlT3BlcmF0aW9uKFJlZlB0cjxTdHlsZUltYWdlPiYm
IGdlbmVyYXRlZEltYWdlKTsKICAgICBNYXNrSW1hZ2VPcGVyYXRpb24oKTsKIAogICAgIFJlbmRl
clNWR1Jlc291cmNlTWFza2VyKiBnZXRTVkdNYXNrZXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIp
Owo=
</data>
<flag name="review"
          id="276961"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>