<?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>60436</bug_id>
          
          <creation_ts>2011-05-07 08:50:06 -0700</creation_ts>
          <short_desc>[Soup] Clean up error handling in ResourceHandleSoup</short_desc>
          <delta_ts>2011-05-09 10:47:23 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>dbates</cc>
    
    <cc>svillar</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>400072</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-07 08:50:06 -0700</bug_when>
    <thetext>Just what it says on the tin. This bug tracks a simple code cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400073</commentid>
    <comment_count>1</comment_count>
      <attachid>92690</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-07 09:01:31 -0700</bug_when>
    <thetext>Created attachment 92690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400098</commentid>
    <comment_count>2</comment_count>
      <attachid>92690</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-05-07 14:15:38 -0700</bug_when>
    <thetext>Comment on attachment 92690
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Instead of repeating the ResourceErorr creation twice, abstract

ResourceErorr =&gt; ResourceError

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:414
&gt; +    GOwnPtr&lt;char&gt; uri(soup_uri_to_string(soup_request_get_uri(request), FALSE));

I am assuming this works out if request is a null pointer.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:424
&gt; +    return ResourceError(g_quark_to_string(G_IO_ERROR),
&gt; +                         error-&gt;code,

Maybe we should add an ASSERT(error) above this line to ensure that error is non-null?

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:781
&gt; +        client-&gt;didFail(handle.get(), convertSoupErrorToResourceError(error.get(), d-&gt;m_soupRequest.get(), 0));

Maybe we should give the parameter message in convertSoupErrorToResourceError() a default value of 0? Then we could remove the last argument in the call here.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:787
&gt; +        // Finish the load now instead of waiting for the input stream to close.

The comment is sufficient as-is and I like how it&apos;s more concise that the old one. But something about this comment makes me feel that I&apos;m missing some kind of reasoning into why we are calling didFinishLoading() now instead of calling it in callback closeCallback(). The old comment quasi-satisfied this &quot;because&quot;/or at least seemed to imply some kind of importance to this design decision with the sense of urgency implied in the last sentence. Maybe we should consider appending a &quot;because&quot; in the new comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400099</commentid>
    <comment_count>3</comment_count>
      <attachid>92690</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-07 14:19:55 -0700</bug_when>
    <thetext>Comment on attachment 92690
Patch

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

&gt;&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:787
&gt;&gt; +        // Finish the load now instead of waiting for the input stream to close.
&gt; 
&gt; The comment is sufficient as-is and I like how it&apos;s more concise that the old one. But something about this comment makes me feel that I&apos;m missing some kind of reasoning into why we are calling didFinishLoading() now instead of calling it in callback closeCallback(). The old comment quasi-satisfied this &quot;because&quot;/or at least seemed to imply some kind of importance to this design decision with the sense of urgency implied in the last sentence. Maybe we should consider appending a &quot;because&quot; in the new comment.

How about: &quot;We want to inform WebCore of load completion as soon as possible, so we do not wait for the stream to close.&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400101</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-05-07 14:28:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; How about: &quot;We want to inform WebCore of load completion as soon as possible, so we do not wait for the stream to close.&quot; ?

This doesn&apos;t seem to add much of a reason compared to what you had previously. Maybe &quot;We inform WebCore of load completion now instead of waiting for the input stream to close because the input stream is closed asynchronously.&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400575</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-09 10:46:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 92690 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92690&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Instead of repeating the ResourceErorr creation twice, abstract
&gt; 
&gt; ResourceErorr =&gt; ResourceError

Fixed.

&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:414
&gt; &gt; +    GOwnPtr&lt;char&gt; uri(soup_uri_to_string(soup_request_get_uri(request), FALSE));
&gt; 
&gt; I am assuming this works out if request is a null pointer.
&gt; 
&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:424
&gt; &gt; +    return ResourceError(g_quark_to_string(G_IO_ERROR),
&gt; &gt; +                         error-&gt;code,
&gt; 
&gt; Maybe we should add an ASSERT(error) above this line to ensure that error is non-null?

I&apos;ve added:
ASSERT(error);
ASSERT(request);

&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:781
&gt; &gt; +        client-&gt;didFail(handle.get(), convertSoupErrorToResourceError(error.get(), d-&gt;m_soupRequest.get(), 0));
&gt; 
&gt; Maybe we should give the parameter message in convertSoupErrorToResourceError() a default value of 0? Then we could remove the last argument in the call here.

Made this change.

&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:787
&gt; &gt; +        // Finish the load now instead of waiting for the input stream to close.
&gt; 
&gt; The comment is sufficient as-is and I like how it&apos;s more concise that the old one. But something about this comment makes me feel that I&apos;m missing some kind of reasoning into why we are calling didFinishLoading() now instead of calling it in callback closeCallback(). The old comment quasi-satisfied this &quot;because&quot;/or at least seemed to imply some kind of importance to this design decision with the sense of urgency implied in the last sentence. Maybe we should consider appending a &quot;because&quot; in the new comment.

I changed the comment to the one you suggested in your latest reply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400576</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-09 10:47:23 -0700</bug_when>
    <thetext>Committed r86064: &lt;http://trac.webkit.org/changeset/86064&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92690</attachid>
            <date>2011-05-07 09:01:31 -0700</date>
            <delta_ts>2011-05-07 14:19:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60436-20110507090130.patch</filename>
            <type>text/plain</type>
            <size>7375</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU5ODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNGQwMGJiNmMwMzljODRk
YzJmZjY0Mjk5MmQxMzQ1Zjg1MDU1NzBlLi4yZjQ3ZjA3OWI0MmU5ZDc0NTU3OTgwNzZmMWFhNDgw
M2E5MWI3NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMDcgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtTb3VwXSBDbGVhbiB1cCBlcnJvciBoYW5kbGlu
ZyBpbiBSZXNvdXJjZUhhbmRsZVNvdXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwNDM2CisKKyAgICAgICAgSW5zdGVhZCBvZiByZXBlYXRpbmcgdGhl
IFJlc291cmNlRXJvcnIgY3JlYXRpb24gdHdpY2UsIGFic3RyYWN0CisgICAgICAgIGl0IGludG8g
YSBoZWxwZXIgbWV0aG9kLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBpcyBhIGNvZGUg
Y2xlYW51cC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c291cEVycm9yU2hvdWxkQ2F1c2VMb2FkRmFp
bHVyZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFNvdXBFcnJvclRvUmVzb3Vy
Y2VFcnJvcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6
IFVzZSB0aGUgbmV3IGhlbHBlcnMuCisgICAgICAgIChXZWJDb3JlOjpyZWFkQ2FsbGJhY2spOiBE
aXR0by4KKwogMjAxMS0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAppbmRleCA5YzMwZDhjYTM4YmFjZGIzZjgyMjNlZTI1N2NlYTBmMDI1Mjc5YTI0Li4yNzhmODQx
MzBiMmQ5ZDVjMTM5NGM0YmUyNDY2OWM3MWE4ODI2MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cApAQCAtNSw3ICs1LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBIb2xnZXIgSGFucyBQZXRl
ciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8
Z25zQGdub21lLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBDaHJpc3RpYW4gRHl3YW4gPGNo
cmlzdGlhbkBpbWVuZGlvLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDExIElnYWxpYSBTLkwuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSm9obiBLamVsbGJlcmcgPGpvaG4ua2plbGxiZXJnQHBvd2VyLmFsc3RvbS5j
b20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgpAQCAtNDAzLDYgKzQwMywyOSBAQCBzdGF0aWMgdm9pZCBjbGVhbnVw
U291cFJlcXVlc3RPcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9vbCBpc0Rlc3Ry
b3lpbgogICAgICAgICBoYW5kbGUtPmRlcmVmKCk7CiB9CiAKK3N0YXRpYyBib29sIHNvdXBFcnJv
clNob3VsZENhdXNlTG9hZEZhaWx1cmUoR0Vycm9yKiBlcnJvciwgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UpCit7CisgICAgLy8gTGlic291cCB0cmVhdHMgc29tZSBub24tZXJyb3IgY29uZGl0aW9ucyBh
cyBlcnJvcnMsIGluY2x1ZGluZyByZWRpcmVjdHMgYW5kIDMwNCBOb3QgTW9kaWZpZWQgcmVzcG9u
c2VzLgorICAgIHJldHVybiBtZXNzYWdlICYmIFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJP
UihtZXNzYWdlLT5zdGF0dXNfY29kZSkgfHwgZXJyb3ItPmRvbWFpbiA9PSBHX0lPX0VSUk9SOwor
fQorCitzdGF0aWMgUmVzb3VyY2VFcnJvciBjb252ZXJ0U291cEVycm9yVG9SZXNvdXJjZUVycm9y
KEdFcnJvciogZXJyb3IsIFNvdXBSZXF1ZXN0KiByZXF1ZXN0LCBTb3VwTWVzc2FnZSogbWVzc2Fn
ZSkKK3sKKyAgICBHT3duUHRyPGNoYXI+IHVyaShzb3VwX3VyaV90b19zdHJpbmcoc291cF9yZXF1
ZXN0X2dldF91cmkocmVxdWVzdCksIEZBTFNFKSk7CisgICAgaWYgKG1lc3NhZ2UgJiYgU09VUF9T
VEFUVVNfSVNfVFJBTlNQT1JUX0VSUk9SKG1lc3NhZ2UtPnN0YXR1c19jb2RlKSkgeworICAgICAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Ip
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxnaW50PihtZXNzYWdl
LT5zdGF0dXNfY29kZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaS5nZXQoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlLT5y
ZWFzb25fcGhyYXNlKSk7CisgICAgfQorCisgICAgLy8gTm9uLXRyYW5zcG9ydCBlcnJvcnMgYXJl
IGhhbmRsZWQgZGlmZmVyZW50bHkuCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoZ19xdWFya190
b19zdHJpbmcoR19JT19FUlJPUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3ItPmNv
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgdXJpLmdldCgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKK30KKwogc3RhdGlj
IHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCog
cmVzLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3RfZ2V0X2RhdGEoc291
cmNlLCAid2Via2l0LXJlc291cmNlIikpOwpAQCAtNDI2LDM2ICs0NDksMjggQEAgc3RhdGljIHZv
aWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVz
LCBncG9pbnRlciB1c2UKIAogICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHSW5wdXRT
dHJlYW0qIGluID0gc291cF9yZXF1ZXN0X3NlbmRfZmluaXNoKGQtPm1fc291cFJlcXVlc3QuZ2V0
KCksIHJlcywgJmVycm9yLm91dFB0cigpKTsKLQogICAgIGlmIChlcnJvcikgewotICAgICAgICBT
b3VwTWVzc2FnZSogc291cE1zZyA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7Ci0gICAgICAgIGdi
b29sZWFuIGlzVHJhbnNwb3J0RXJyb3IgPSBkLT5tX3NvdXBNZXNzYWdlICYmIFNPVVBfU1RBVFVT
X0lTX1RSQU5TUE9SVF9FUlJPUihzb3VwTXNnLT5zdGF0dXNfY29kZSk7Ci0KLSAgICAgICAgaWYg
KGlzVHJhbnNwb3J0RXJyb3IgfHwgKGVycm9yLT5kb21haW4gPT0gR19JT19FUlJPUikpIHsKLSAg
ICAgICAgICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfcmVxdWVzdF9nZXRfdXJpKGQtPm1fc291cFJl
cXVlc3QuZ2V0KCkpOwotICAgICAgICAgICAgR093blB0cjxjaGFyPiB1cmlTdHIoc291cF91cmlf
dG9fc3RyaW5nKHVyaSwgZmFsc2UpKTsKLSAgICAgICAgICAgIGdpbnQgZXJyb3JDb2RlID0gaXNU
cmFuc3BvcnRFcnJvciA/IHN0YXRpY19jYXN0PGdpbnQ+KHNvdXBNc2ctPnN0YXR1c19jb2RlKSA6
IGVycm9yLT5jb2RlOwotICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGVycm9yTXNnID0gaXNUcmFu
c3BvcnRFcnJvciA/IHNvdXBNc2ctPnJlYXNvbl9waHJhc2UgOiBlcnJvci0+bWVzc2FnZTsKLSAg
ICAgICAgICAgIGNvbnN0IGdjaGFyKiBxdWFya1N0ciA9IGlzVHJhbnNwb3J0RXJyb3IgPyBnX3F1
YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1IpIDogZ19xdWFya190b19zdHJpbmcoR19JT19F
UlJPUik7Ci0gICAgICAgICAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IocXVhcmtTdHIs
IGVycm9yQ29kZSwgdXJpU3RyLmdldCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yTXNnKSk7Cisg
ICAgICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7
CiAKKyAgICAgICAgaWYgKHNvdXBFcnJvclNob3VsZENhdXNlTG9hZEZhaWx1cmUoZXJyb3IuZ2V0
KCksIHNvdXBNZXNzYWdlKSkgeworICAgICAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5n
ZXQoKSwgY29udmVydFNvdXBFcnJvclRvUmVzb3VyY2VFcnJvcihlcnJvci5nZXQoKSwgZC0+bV9z
b3VwUmVxdWVzdC5nZXQoKSwgc291cE1lc3NhZ2UpKTsKICAgICAgICAgICAgIGNsZWFudXBTb3Vw
UmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwotICAgICAgICAgICAgY2xpZW50LT5kaWRG
YWlsKGhhbmRsZS5nZXQoKSwgcmVzb3VyY2VFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoZC0+bV9zb3VwTWVzc2FnZSAmJiBzdGF0dXNXaWxsQmVI
YW5kbGVkQnlTb3VwKGQtPm1fc291cE1lc3NhZ2UtPnN0YXR1c19jb2RlKSkgeworICAgICAgICBp
ZiAoc291cE1lc3NhZ2UgJiYgc3RhdHVzV2lsbEJlSGFuZGxlZEJ5U291cChzb3VwTWVzc2FnZS0+
c3RhdHVzX2NvZGUpKSB7CiAgICAgICAgICAgICBBU1NFUlQoZC0+bV9yZXNwb25zZS5pc051bGwo
KSk7CiAKLSAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UudXBkYXRlRnJvbVNvdXBNZXNzYWdlKHNv
dXBNc2cpOworICAgICAgICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2Uo
c291cE1lc3NhZ2UpOwogICAgICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFu
ZGxlLmdldCgpLCBkLT5tX3Jlc3BvbnNlKTsKIAogICAgICAgICAgICAgLy8gV2ViQ29yZSBtaWdo
dCBoYXZlIGNhbmNlbGxlZCB0aGUgam9iIGluIHRoZSB3aGlsZS4gV2UKICAgICAgICAgICAgIC8v
IG11c3QgY2hlY2sgZm9yIHJlc3BvbnNlX2JvZHktPmxlbmd0aCBhbmQgbm90CiAgICAgICAgICAg
ICAvLyByZXNwb25zZV9ib2R5LT5kYXRhIGFzIGxpYnNvdXAgYWx3YXlzIGNyZWF0ZXMgdGhlCiAg
ICAgICAgICAgICAvLyBTb3VwQnVmZmVyIGZvciB0aGUgYm9keSBldmVuIGlmIHRoZSBsZW5ndGgg
aXMgMAotICAgICAgICAgICAgaWYgKCFkLT5tX2NhbmNlbGxlZCAmJiBzb3VwTXNnLT5yZXNwb25z
ZV9ib2R5LT5sZW5ndGgpCi0gICAgICAgICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YSho
YW5kbGUuZ2V0KCksIHNvdXBNc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIHNvdXBNc2ctPnJlc3Bv
bnNlX2JvZHktPmxlbmd0aCwgc291cE1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoKTsKKyAgICAg
ICAgICAgIGlmICghZC0+bV9jYW5jZWxsZWQgJiYgc291cE1lc3NhZ2UtPnJlc3BvbnNlX2JvZHkt
Pmxlbmd0aCkKKyAgICAgICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5n
ZXQoKSwgc291cE1lc3NhZ2UtPnJlc3BvbnNlX2JvZHktPmRhdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzb3VwTWVzc2FnZS0+cmVzcG9uc2VfYm9keS0+bGVuZ3Ro
LCBzb3VwTWVzc2FnZS0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoKTsKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIGRpZFJlY2VpdmVEYXRhIGFib3ZlIG1pZ2h0IGhhdmUgY2FuY2VsZWQgdGhpcyBvcGVy
YXRpb24uIElmIG5vdCwgaW5mb3JtIHRoZSBjbGllbnQgd2UndmUgZmluaXNoZWQgbG9hZGluZy4K
QEAgLTc2MSwyNSArNzc2LDE3IEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBz
b3VyY2UsIEdBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQsIGdwb2ludGVyIGRhCiAgICAgfQogCiAg
ICAgR093blB0cjxHRXJyb3I+IGVycm9yOwotCiAgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5w
dXRfc3RyZWFtX3JlYWRfZmluaXNoKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIGFzeW5jUmVzdWx0
LCAmZXJyb3Iub3V0UHRyKCkpOwogICAgIGlmIChlcnJvcikgewotICAgICAgICBTb3VwVVJJKiB1
cmkgPSBzb3VwX3JlcXVlc3RfZ2V0X3VyaShkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKTsKLSAgICAg
ICAgR093blB0cjxjaGFyPiB1cmlTdHIoc291cF91cmlfdG9fc3RyaW5nKHVyaSwgZmFsc2UpKTsK
LSAgICAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKEdf
SU9fRVJST1IpLCBlcnJvci0+Y29kZSwgdXJpU3RyLmdldCgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyb3IgPyBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdl
KSA6IFN0cmluZygpKTsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5nZXQoKSwgY29u
dmVydFNvdXBFcnJvclRvUmVzb3VyY2VFcnJvcihlcnJvci5nZXQoKSwgZC0+bV9zb3VwUmVxdWVz
dC5nZXQoKSwgMCkpOwogICAgICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oaGFuZGxl
LmdldCgpKTsKLSAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5nZXQoKSwgcmVzb3VyY2VF
cnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIWJ5dGVzUmVhZCkgewot
ICAgICAgICAvLyBGaW5pc2ggdGhlIGxvYWQuIFdlIGRvIG5vdCB3YWl0IGZvciB0aGUgc3RyZWFt
IHRvCi0gICAgICAgIC8vIGNsb3NlLiBJbnN0ZWFkIHdlIGJldHRlciBub3RpZnkgV2ViQ29yZSBh
cyBzb29uIGFzIHBvc3NpYmxlCisgICAgICAgIC8vIEZpbmlzaCB0aGUgbG9hZCBub3cgaW5zdGVh
ZCBvZiB3YWl0aW5nIGZvciB0aGUgaW5wdXQgc3RyZWFtIHRvIGNsb3NlLgogICAgICAgICBjbGll
bnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKLQotICAgICAgICBnX2lucHV0
X3N0cmVhbV9jbG9zZV9hc3luYyhkLT5tX2lucHV0U3RyZWFtLmdldCgpLCBHX1BSSU9SSVRZX0RF
RkFVTFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGNsb3NlQ2FsbGJh
Y2ssIDApOworICAgICAgICBnX2lucHV0X3N0cmVhbV9jbG9zZV9hc3luYyhkLT5tX2lucHV0U3Ry
ZWFtLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQsIDAsIGNsb3NlQ2FsbGJhY2ssIDApOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCg==
</data>
<flag name="review"
          id="85703"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>