<?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>129388</bug_id>
          
          <creation_ts>2014-02-26 13:57:18 -0800</creation_ts>
          <short_desc>DocumentLoader should keep maps of ResourceLoaders instead of sets</short_desc>
          <delta_ts>2014-03-02 12:29:13 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>129391</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984890</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-26 13:57:18 -0800</bug_when>
    <thetext>DocumentLoader keeps three sets of all active ResourceLoaders (for subresources, plugins, and multipart subresources).

To deterministically replay network traffic, we need to be able to get a ResourceLoader by its identifier out of the DocumentLoader, and then simulate a network callback on the loader.
So, we should use a Map (where keys are identifiers) instead of a Set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984917</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-26 14:41:29 -0800</bug_when>
    <thetext>We occasionally (semi regularly?) end up with identifier-related bugs.

Add plenty of ASSERTs around interaction with this map to make sure you&apos;re not adding a loader with the same identifier in twice, or getting a loader out that you expect to be there but it&apos;s not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985747</commentid>
    <comment_count>2</comment_count>
      <attachid>225500</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-28 15:25:39 -0800</bug_when>
    <thetext>Created attachment 225500
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985749</commentid>
    <comment_count>3</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-28 15:26:28 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Add plenty of ASSERTs around interaction with this map to make sure you&apos;re not adding a loader with the same identifier in twice, or getting a loader out that you expect to be there but it&apos;s not.

I added these asserts. One of them caught an apparent leak (see the ChangeLog). Win!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986014</commentid>
    <comment_count>4</comment_count>
      <attachid>225500</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-01 16:37:51 -0800</bug_when>
    <thetext>Comment on attachment 225500
the patch

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

Would be nice to find an even better idiom for the &quot;copy values and iterate&quot; that doesn&apos;t require two extra lines of code and explicitly specifying the vector type.

&gt; Source/WebCore/loader/DocumentLoader.cpp:1343
&gt; +    m_subresourceLoaders.set(loader-&gt;identifier(), loader);

Should use add instead of set. The only difference is that set will replace an existing element if there is one, and set is implemented by doing an add and then an additional write after the fact.

&gt; Source/WebCore/loader/DocumentLoader.cpp:1362
&gt; +    m_plugInStreamLoaders.set(loader-&gt;identifier(), loader);

Should use add instead of set. Same reasons as above.

&gt; Source/WebCore/loader/DocumentLoader.cpp:1499
&gt; +    m_multipartSubresourceLoaders.set(loader-&gt;identifier(), loader);

Should use add instead of set. Same reasons as above.

&gt; Source/WebCore/loader/mac/DocumentLoaderMac.cpp:44
&gt; +    for (auto&amp; loader : loadersCopy)
&gt; +        if (ResourceHandle* handle = loader-&gt;handle())
&gt;              handle-&gt;schedule(pair);

Multi-line for loop body gets braces in WebKit coding style.

&gt; Source/WebCore/loader/mac/DocumentLoaderMac.cpp:53
&gt; +    for (auto&amp; loader : loadersCopy)
&gt; +        if (ResourceHandle* handle = loader-&gt;handle())
&gt;              handle-&gt;unschedule(pair);

Multi-line for loop body gets braces in WebKit coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986048</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-01 20:42:59 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 225500 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225500&amp;action=review
&gt;
&gt; &gt; Source/WebCore/loader/DocumentLoader.cpp:1343
&gt; &gt; +    m_subresourceLoaders.set(loader-&gt;identifier(), loader);

I meant to do what you said, but I mixed them up. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986136</commentid>
    <comment_count>6</comment_count>
      <attachid>225500</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-02 11:21:20 -0800</bug_when>
    <thetext>Comment on attachment 225500
the patch

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

&gt;&gt; Source/WebCore/loader/mac/DocumentLoaderMac.cpp:44
&gt;&gt;              handle-&gt;schedule(pair);
&gt; 
&gt; Multi-line for loop body gets braces in WebKit coding style.

Oops. I think check-webkit-style should have caught this (existing bug: https://bugs.webkit.org/show_bug.cgi?id=34189)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986148</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-02 12:29:13 -0800</bug_when>
    <thetext>Committed r164947: &lt;http://trac.webkit.org/changeset/164947&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225500</attachid>
            <date>2014-02-28 15:25:39 -0800</date>
            <delta_ts>2014-03-02 11:21:19 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>bug-129388-20140228152548.patch</filename>
            <type>text/plain</type>
            <size>9626</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVmNGFjMjRhZWFlMjQ4
YjQ3ZTEyYWYyNjc3NjAxNGZjYzUzOTFkNC4uOWRkOTA3OTM3MjQxZDczZTY4ZTJjMTA1ODFhMzY5
MTU2NjEwZTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTAyLTI4ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIERvY3VtZW50TG9hZGVyIHNob3Vs
ZCBrZWVwIG1hcHMgb2YgUmVzb3VyY2VMb2FkZXJzIGluc3RlYWQgb2Ygc2V0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5Mzg4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIHdlYiByZXBsYXksIHdl
IG5lZWQgdG8gYmUgYWJsZSB0byBwdWxsIGEgUmVzb3VyY2VMb2FkZXIgaW5zdGFuY2UgYnkKKyAg
ICAgICAgaWRlbnRpZmllciBmcm9tIHRoZSBEb2N1bWVudExvYWRlci4gVGhpcyBpcyBlYXN5IHRv
IGRvIGlmIHdlIGNvbnZlcnQKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQgdG8gUmVzb3VyY2VM
b2FkZXJNYXAsIGtleWVkIGJ5IHRoZSBsb2FkZXIncyBpZGVudGlmaWVyLgorCisgICAgICAgIEFk
ZGVkIGFzc2VydGlvbnMgd2hlbmV2ZXIgYWRkaW5nIG9yIHJlbW92aW5nIGZyb20gdGhlIG1hcCB0
byBlbnN1cmUKKyAgICAgICAgdGhhdCB3ZSBkb24ndCB0cnkgdG8gYWRkIGR1cGxpY2F0ZXMgb3Ig
cmVzb3VyY2VzIHdpdGggemVybyBpZGVudGlmaWVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMg
cmVxdWlyZWQuIE5vIGZ1bmN0aW9uYWxpdHkgd2FzIGFkZGVkLgorCisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbmNlbEFsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRBbGxEZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmFy
ZUFsbExvYWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI6OmFkZFBsdWdJblN0cmVhbUxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlcjo6cmVtb3ZlUGx1Z0luU3RyZWFtTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09u
ZVBhcnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKTogT25seSBhZGQgdGhlIGxvYWRlcgor
ICAgICAgICB0byB0aGUgZG9jdW1lbnQgbG9hZGVyJ3MgbWFwIGlmIGl0IGluaXRpYWxpemVkIHN1
Y2Nlc3NmdWxseS4KKyAgICAgICAgVGhlIG9sZCBjb2RlIHdhcyBwcm9iYWJseSBsZWFraW5nIHJl
c291cmNlIGxvYWRlcnMgdGhhdCBmYWlsZWQgdG8KKyAgICAgICAgaW5pdGlhbGl6ZS4KKworICAg
ICAgICAqIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2NoZWR1bGVBbGwpOgorICAgICAgICAoV2ViQ29yZTo6dW5zY2hlZHVsZUFsbCk6CisKIDIw
MTQtMDItMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIGRvZXMgbm90IHNraXAgb3ZlciBTVkcgZm9u
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDU5MDg5YWMy
MjFhM2ZiYTc2NjFkYTY1N2QxOTAyMWZiYWRjYjFmNzQuLjVhM2IxNDZiMTZlN2ZhMDFkYzkyZTU1
NWY4ZjczNTBjZjVkYjk3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcApAQCAtNzgsMjggKzc4LDI2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGlj
IHZvaWQgY2FuY2VsQWxsKGNvbnN0IFJlc291cmNlTG9hZGVyU2V0JiBsb2FkZXJzKQorc3RhdGlj
IHZvaWQgY2FuY2VsQWxsKGNvbnN0IFJlc291cmNlTG9hZGVyTWFwJiBsb2FkZXJzKQogewogICAg
IFZlY3RvcjxSZWZQdHI8UmVzb3VyY2VMb2FkZXI+PiBsb2FkZXJzQ29weTsKLSAgICBjb3B5VG9W
ZWN0b3IobG9hZGVycywgbG9hZGVyc0NvcHkpOwotICAgIHNpemVfdCBzaXplID0gbG9hZGVyc0Nv
cHkuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAg
ICBsb2FkZXJzQ29weVtpXS0+Y2FuY2VsKCk7CisgICAgY29weVZhbHVlc1RvVmVjdG9yKGxvYWRl
cnMsIGxvYWRlcnNDb3B5KTsKKyAgICBmb3IgKGF1dG8mIGxvYWRlciA6IGxvYWRlcnNDb3B5KQor
ICAgICAgICBsb2FkZXItPmNhbmNlbCgpOwogfQogCi1zdGF0aWMgdm9pZCBzZXRBbGxEZWZlcnNM
b2FkaW5nKGNvbnN0IFJlc291cmNlTG9hZGVyU2V0JiBsb2FkZXJzLCBib29sIGRlZmVycykKK3N0
YXRpYyB2b2lkIHNldEFsbERlZmVyc0xvYWRpbmcoY29uc3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxv
YWRlcnMsIGJvb2wgZGVmZXJzKQogewogICAgIFZlY3RvcjxSZWZQdHI8UmVzb3VyY2VMb2FkZXI+
PiBsb2FkZXJzQ29weTsKLSAgICBjb3B5VG9WZWN0b3IobG9hZGVycywgbG9hZGVyc0NvcHkpOwot
ICAgIHNpemVfdCBzaXplID0gbG9hZGVyc0NvcHkuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBsb2FkZXJzQ29weVtpXS0+c2V0RGVmZXJzTG9h
ZGluZyhkZWZlcnMpOworICAgIGNvcHlWYWx1ZXNUb1ZlY3Rvcihsb2FkZXJzLCBsb2FkZXJzQ29w
eSk7CisgICAgZm9yIChhdXRvJiBsb2FkZXIgOiBsb2FkZXJzQ29weSkKKyAgICAgICAgbG9hZGVy
LT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXN0YXRpYyBib29sIGFyZUFsbExvYWRl
cnNQYWdlQ2FjaGVBY2NlcHRhYmxlKGNvbnN0IFJlc291cmNlTG9hZGVyU2V0JiBsb2FkZXJzKQor
c3RhdGljIGJvb2wgYXJlQWxsTG9hZGVyc1BhZ2VDYWNoZUFjY2VwdGFibGUoY29uc3QgUmVzb3Vy
Y2VMb2FkZXJNYXAmIGxvYWRlcnMpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxSZXNvdXJjZUxvYWRl
cj4+IGxvYWRlcnNDb3B5OwotICAgIGNvcHlUb1ZlY3Rvcihsb2FkZXJzLCBsb2FkZXJzQ29weSk7
CisgICAgY29weVZhbHVlc1RvVmVjdG9yKGxvYWRlcnMsIGxvYWRlcnNDb3B5KTsKICAgICBmb3Ig
KGF1dG8mIGxvYWRlciA6IGxvYWRlcnNDb3B5KSB7CiAgICAgICAgIFJlc291cmNlSGFuZGxlKiBo
YW5kbGUgPSBsb2FkZXItPmhhbmRsZSgpOwogICAgICAgICBpZiAoIWhhbmRsZSkKQEAgLTEzMzgs
MTQgKzEzMzYsMTggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkU3VicmVzb3VyY2VMb2FkZXIo
UmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICAvLyBpZiB3ZSBhcmUganVzdCBzdGFydGluZyB0
aGUgbWFpbiByZXNvdXJjZSBsb2FkLgogICAgIGlmICghbV9nb3RGaXJzdEJ5dGUpCiAgICAgICAg
IHJldHVybjsKLSAgICBBU1NFUlQoIW1fc3VicmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGxvYWRl
cikpOworICAgIEFTU0VSVChsb2FkZXItPmlkZW50aWZpZXIoKSk7CisgICAgQVNTRVJUKCFtX3N1
YnJlc291cmNlTG9hZGVycy5jb250YWlucyhsb2FkZXItPmlkZW50aWZpZXIoKSkpOwogICAgIEFT
U0VSVCghbWFpblJlc291cmNlTG9hZGVyKCkgfHwgbWFpblJlc291cmNlTG9hZGVyKCkgIT0gbG9h
ZGVyKTsKLSAgICBtX3N1YnJlc291cmNlTG9hZGVycy5hZGQobG9hZGVyKTsKKworICAgIG1fc3Vi
cmVzb3VyY2VMb2FkZXJzLnNldChsb2FkZXItPmlkZW50aWZpZXIoKSwgbG9hZGVyKTsKIH0KIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2Fk
ZXIqIGxvYWRlcikKIHsKLSAgICBpZiAoIW1fc3VicmVzb3VyY2VMb2FkZXJzLnJlbW92ZShsb2Fk
ZXIpKQorICAgIEFTU0VSVChsb2FkZXItPmlkZW50aWZpZXIoKSk7CisKKyAgICBpZiAoIW1fc3Vi
cmVzb3VyY2VMb2FkZXJzLnJlbW92ZShsb2FkZXItPmlkZW50aWZpZXIoKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBjaGVja0xvYWRDb21wbGV0ZSgpOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSBt
X2ZyYW1lKQpAQCAtMTM1NCwxMiArMTM1NiwxOCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZW1v
dmVTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjphZGRQbHVnSW5TdHJlYW1Mb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikK
IHsKLSAgICBtX3BsdWdJblN0cmVhbUxvYWRlcnMuYWRkKGxvYWRlcik7CisgICAgQVNTRVJUKGxv
YWRlci0+aWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQoIW1fcGx1Z0luU3RyZWFtTG9hZGVycy5j
b250YWlucyhsb2FkZXItPmlkZW50aWZpZXIoKSkpOworCisgICAgbV9wbHVnSW5TdHJlYW1Mb2Fk
ZXJzLnNldChsb2FkZXItPmlkZW50aWZpZXIoKSwgbG9hZGVyKTsKIH0KIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6cmVtb3ZlUGx1Z0luU3RyZWFtTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIp
CiB7Ci0gICAgbV9wbHVnSW5TdHJlYW1Mb2FkZXJzLnJlbW92ZShsb2FkZXIpOworICAgIEFTU0VS
VChsb2FkZXItPmlkZW50aWZpZXIoKSk7CisgICAgQVNTRVJUKGxvYWRlciA9PSBtX3BsdWdJblN0
cmVhbUxvYWRlcnMuZ2V0KGxvYWRlci0+aWRlbnRpZmllcigpKSk7CisKKyAgICBtX3BsdWdJblN0
cmVhbUxvYWRlcnMucmVtb3ZlKGxvYWRlci0+aWRlbnRpZmllcigpKTsKICAgICBjaGVja0xvYWRD
b21wbGV0ZSgpOwogfQogCkBAIC0xNDg0LDggKzE0OTIsMTIgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6Y2xlYXJNYWluUmVzb3VyY2UoKQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJj
ZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIHsK
LSAgICBtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycy5hZGQobG9hZGVyKTsKLSAgICBtX3N1
YnJlc291cmNlTG9hZGVycy5yZW1vdmUobG9hZGVyKTsKKyAgICBBU1NFUlQobG9hZGVyLT5pZGVu
dGlmaWVyKCkpOworICAgIEFTU0VSVCghbV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMuY29u
dGFpbnMobG9hZGVyLT5pZGVudGlmaWVyKCkpKTsKKyAgICBBU1NFUlQobV9zdWJyZXNvdXJjZUxv
YWRlcnMuY29udGFpbnMobG9hZGVyLT5pZGVudGlmaWVyKCkpKTsKKworICAgIG1fbXVsdGlwYXJ0
U3VicmVzb3VyY2VMb2FkZXJzLnNldChsb2FkZXItPmlkZW50aWZpZXIoKSwgbG9hZGVyKTsKKyAg
ICBtX3N1YnJlc291cmNlTG9hZGVycy5yZW1vdmUobG9hZGVyLT5pZGVudGlmaWVyKCkpOwogICAg
IGNoZWNrTG9hZENvbXBsZXRlKCk7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZnJhbWUpCiAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jaGVja0xvYWRDb21wbGV0ZSgpOyAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggY2FlYjM2NjA2Y2ExNjJlMTRmMGMxZTE3
N2EzZTg1MDk2NDA2ODAyMC4uNzU0MTVjMWQxNWVmYjAzZWRmZmU5MDhkOGIyNGU3MDNmNTI3NGM4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTc0LDcgKzc0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKICAgICBjbGFz
cyBTdWJzdGl0dXRlUmVzb3VyY2U7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFJlc291
cmNlTG9hZGVyPj4gUmVzb3VyY2VMb2FkZXJTZXQ7CisgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2ln
bmVkIGxvbmcsIFJlZlB0cjxSZXNvdXJjZUxvYWRlcj4+IFJlc291cmNlTG9hZGVyTWFwOwogICAg
IHR5cGVkZWYgVmVjdG9yPFJlc291cmNlUmVzcG9uc2U+IFJlc3BvbnNlVmVjdG9yOwogCiAgICAg
Y2xhc3MgRG9jdW1lbnRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxEb2N1bWVudExvYWRlcj4s
IHByaXZhdGUgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgewpAQCAtMzMxLDkgKzMzMSw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2Nh
Y2hlZFJlc291cmNlTG9hZGVyOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJhd1Jlc291cmNlPiBtX21haW5SZXNvdXJjZTsKLSAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQg
bV9zdWJyZXNvdXJjZUxvYWRlcnM7Ci0gICAgICAgIFJlc291cmNlTG9hZGVyU2V0IG1fbXVsdGlw
YXJ0U3VicmVzb3VyY2VMb2FkZXJzOwotICAgICAgICBSZXNvdXJjZUxvYWRlclNldCBtX3BsdWdJ
blN0cmVhbUxvYWRlcnM7CisgICAgICAgIFJlc291cmNlTG9hZGVyTWFwIG1fc3VicmVzb3VyY2VM
b2FkZXJzOworICAgICAgICBSZXNvdXJjZUxvYWRlck1hcCBtX211bHRpcGFydFN1YnJlc291cmNl
TG9hZGVyczsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJNYXAgbV9wbHVnSW5TdHJlYW1Mb2FkZXJz
OwogICAgICAgICAKICAgICAgICAgbXV0YWJsZSBEb2N1bWVudFdyaXRlciBtX3dyaXRlcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAKaW5kZXggYjhjNDU1NmZhOTY0MDNkMjhhODUwZDg1MWE1Yjc3M2JlMmQ4ZTc1NS4uOTE2
M2NkMzVlZTk3YTVjOTYwMDFhYTM5NjU1OGY4NjBmMWQ3ZDA1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC00OSwx
MCArNDksMTAgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6On5OZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlcigpCiBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXJDbGllbnQqIGNsaWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewogICAgIFJlZlB0cjxOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4gbG9hZGVyKGFk
b3B0UmVmKG5ldyBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcihmcmFtZSwgY2xpZW50KSkpOwot
ICAgIGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YWRkUGx1Z0luU3RyZWFtTG9hZGVyKGxvYWRl
ci5nZXQoKSk7CiAgICAgaWYgKCFsb2FkZXItPmluaXQocmVxdWVzdCkpCiAgICAgICAgIHJldHVy
biAwOwogCisgICAgbG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5hZGRQbHVnSW5TdHJlYW1Mb2Fk
ZXIobG9hZGVyLmdldCgpKTsKICAgICByZXR1cm4gbG9hZGVyLnJlbGVhc2UoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAppbmRleCA5
NWFmNzkwNjc0MmQ4N2RkYzYwZWRmZWU5YjMxNjcxZDA4MTNmOTZhLi44ZGQxNjFlNTQyOTRlZDAx
M2UzYWMzMWEyNTNiMTkxZDdjYTg3YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
bWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcApAQCAtMzUsMjEgKzM1LDIxIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotc3RhdGljIHZvaWQgc2NoZWR1bGVBbGwo
Y29uc3QgUmVzb3VyY2VMb2FkZXJTZXQmIGxvYWRlcnMsIFNjaGVkdWxlUGFpciogcGFpcikKK3N0
YXRpYyB2b2lkIHNjaGVkdWxlQWxsKGNvbnN0IFJlc291cmNlTG9hZGVyTWFwJiBsb2FkZXJzLCBT
Y2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgY29uc3QgUmVzb3VyY2VMb2FkZXJTZXQgY29weSA9
IGxvYWRlcnM7Ci0gICAgUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNv
cHkuZW5kKCk7Ci0gICAgZm9yIChSZXNvdXJjZUxvYWRlclNldDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBjb3B5LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgaWYgKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUgPSAoKml0KS0+aGFuZGxlKCkpCisgICAgVmVjdG9yPFJlZlB0cjxSZXNvdXJj
ZUxvYWRlcj4+IGxvYWRlcnNDb3B5OworICAgIGNvcHlWYWx1ZXNUb1ZlY3Rvcihsb2FkZXJzLCBs
b2FkZXJzQ29weSk7CisgICAgZm9yIChhdXRvJiBsb2FkZXIgOiBsb2FkZXJzQ29weSkKKyAgICAg
ICAgaWYgKFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBsb2FkZXItPmhhbmRsZSgpKQogICAgICAg
ICAgICAgaGFuZGxlLT5zY2hlZHVsZShwYWlyKTsKIH0KIAotc3RhdGljIHZvaWQgdW5zY2hlZHVs
ZUFsbChjb25zdCBSZXNvdXJjZUxvYWRlclNldCYgbG9hZGVycywgU2NoZWR1bGVQYWlyKiBwYWly
KQorc3RhdGljIHZvaWQgdW5zY2hlZHVsZUFsbChjb25zdCBSZXNvdXJjZUxvYWRlck1hcCYgbG9h
ZGVycywgU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAgIGNvbnN0IFJlc291cmNlTG9hZGVyU2V0
IGNvcHkgPSBsb2FkZXJzOwotICAgIFJlc291cmNlTG9hZGVyU2V0Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSBjb3B5LmVuZCgpOwotICAgIGZvciAoUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gY29weS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGlmIChSZXNv
dXJjZUhhbmRsZSogaGFuZGxlID0gKCppdCktPmhhbmRsZSgpKQorICAgIFZlY3RvcjxSZWZQdHI8
UmVzb3VyY2VMb2FkZXI+PiBsb2FkZXJzQ29weTsKKyAgICBjb3B5VmFsdWVzVG9WZWN0b3IobG9h
ZGVycywgbG9hZGVyc0NvcHkpOworICAgIGZvciAoYXV0byYgbG9hZGVyIDogbG9hZGVyc0NvcHkp
CisgICAgICAgIGlmIChSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gbG9hZGVyLT5oYW5kbGUoKSkK
ICAgICAgICAgICAgIGhhbmRsZS0+dW5zY2hlZHVsZShwYWlyKTsKIH0KICNlbmRpZgo=
</data>
<flag name="review"
          id="249646"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>