<?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>12479</bug_id>
          
          <creation_ts>2007-01-30 09:31:48 -0800</creation_ts>
          <short_desc>ASSERTION FAILURE: resource-&gt;inCache() in WebCore::Cache::remove</short_desc>
          <delta_ts>2007-02-17 11:14:02 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Lilek">dev+webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>mitz</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>30157</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-01-30 09:31:48 -0800</bug_when>
    <thetext>I&apos;ve only seen this assertion failure on Colloquy&apos;s web plugin, but it&apos;s producable by reloading that page a few times.

ASSERTION FAILED: resource-&gt;inCache()
(/Users/matt/Code/WebKit/WebCore/loader/Cache.cpp:163 void WebCore::Cache::remove(WebCore::CachedResource*))

Thread 0 Crashed:
0   com.apple.WebCore        	0x011545c0 WebCore::Cache::remove(WebCore::CachedResource*) + 104 (Cache.cpp:163)
1   com.apple.WebCore        	0x01159c4c WebCore::Loader::didFail(WebCore::SubresourceLoader*, WebCore::ResourceError const&amp;) + 448 (loader.cpp:135)
2   com.apple.WebCore        	0x014f3bb4 WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&amp;) + 212 (SubresourceLoader.cpp:186)
3   com.apple.WebCore        	0x014f1e98 WebCore::ResourceLoader::didFail(WebCore::ResourceHandle*, WebCore::ResourceError const&amp;) + 68
4   com.apple.WebCore        	0x014c7fdc -[WebCoreResourceHandleAsDelegate connection:didFailWithError:] + 164 (ResourceHandleMac.mm:368)
5   com.apple.Foundation     	0x929ba110 -[NSURLConnection(NSURLConnectionInternal) _sendDidFailCallback] + 100
6   com.apple.Foundation     	0x9298fab8 -[NSURLConnection(NSURLConnectionInternal) _sendCallbacks] + 556
7   com.apple.Foundation     	0x9298f810 _sendCallbacks + 156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30118</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-30 10:08:00 -0800</bug_when>
    <thetext>Heh, just when I close bug 11380 :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30017</commentid>
    <comment_count>2</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-01-30 11:51:50 -0800</bug_when>
    <thetext>D&apos;oh! I totally missed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29150</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-02-01 18:41:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/4971219&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24913</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-02-07 11:21:31 -0800</bug_when>
    <thetext>Bug 12652 has steps to reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25023</commentid>
    <comment_count>5</comment_count>
      <attachid>13044</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-02-07 22:17:01 -0800</bug_when>
    <thetext>Created attachment 13044
Reduction

1. Load the testcase.
2. From Safari&apos;s Debug menu, open the Caches window and tick the &quot;Disable WebCore Caches&quot; checkbox.
3. Click ASSERT!
4. WebKit prints the above assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22994</commentid>
    <comment_count>6</comment_count>
      <attachid>13206</attachid>
    <who name="">mitz</who>
    <bug_when>2007-02-16 15:01:10 -0800</bug_when>
    <thetext>Created attachment 13206
Simpler reduction

Just hit Command-R to trigger the ASSERT.

When you reload, the first Iframe creates a cached resource for the image and it begins to load. Then the second Iframe needs the same URL, but since it&apos;s a reload it wants a fresh copy, so it checks if there is a cached resource, and seeing that there is one (put there by the first Iframe), it removes it from the cache. Now the loader learns that the loading failed (since the file doesn&apos;t exist) so it wants to remove the resource from the cache, and that&apos;s when the assert is hit (because the second frame has already removed it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22997</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-02-16 15:38:59 -0800</bug_when>
    <thetext>The reason this doesn&apos;t happen with, say, two images with the same src in the same document is that a DocLoader maintains a list of reloaded URLs, so it will not issue multiple requests to load the same URL.

I can think of two ways to address this bug:

1) Say that it&apos;s okay that separate documents (which can be in different iframes in the same parent document or in two different windows) reload separately, remove the ASSERT, and in the case that the resource is not in the cache skip straight to the canDelete() check. This will have the side effect of actually doing two loads of the same resource in parallel instead of having the second frame/window join in on the reload that&apos;s in progress.

2) Manage the &quot;reloaded URLs&quot; or &quot;reloading URLs&quot; list/status in the Cache. Clients will need to tell the cache that they want a resource reloaded, and the cache will see if a reload of the URL is in progress. If so, it will hand back the reloading resource. Otherwise, it will remove an existing resource (if any) and create a new one. The part I&apos;m unclear about here is when a resource should transition from &quot;reloading&quot; to &quot;loaded&quot; status.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22951</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-02-16 15:40:58 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This will have the side effect of
&gt; actually doing two loads of the same resource in parallel instead of having the
&gt; second frame/window join in on the reload that&apos;s in progress.

That&apos;s how WebKit behaves currently, of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22897</commentid>
    <comment_count>9</comment_count>
      <attachid>13210</attachid>
    <who name="">mitz</who>
    <bug_when>2007-02-17 02:41:29 -0800</bug_when>
    <thetext>Created attachment 13210
Replace the ASSERT with a check and allow simultaneous reloads

Includes change log and a layout test (for debug builds only). Implements option 1) from comment #7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22832</commentid>
    <comment_count>10</comment_count>
      <attachid>13210</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-17 08:23:59 -0800</bug_when>
    <thetext>Comment on attachment 13210
Replace the ASSERT with a check and allow simultaneous reloads

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22822</commentid>
    <comment_count>11</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2007-02-17 11:14:02 -0800</bug_when>
    <thetext>Committed revision 19683.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13044</attachid>
            <date>2007-02-07 22:17:01 -0800</date>
            <delta_ts>2007-02-07 22:17:01 -0800</delta_ts>
            <desc>Reduction</desc>
            <filename>cacheassert.html</filename>
            <type>text/html</type>
            <size>291</size>
            <attacher name="Matt Lilek">dev+webkit</attacher>
            
              <data encoding="base64">PGh0bWw+Cgo8aGVhZD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0
Zi04Ij4KICAgIGZ1bmN0aW9uIGNyYXNoTWUoKQogICAgewogICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdmb28nKS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybCgvaW1hZ2VzL3N0YXR1
c19vZmYuZ2lmKSc7CiAgICB9Cjwvc2NyaXB0Pgo8L2hlYWQ+Cgo8Ym9keT4KICAgIDxhIGlkPSJm
b28iIGhyZWY9IiMiIG9uY2xpY2s9ImNyYXNoTWUoKTsiPkFTU0VSVCE8L2E+CjwvYm9keT4KCjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13206</attachid>
            <date>2007-02-16 15:01:10 -0800</date>
            <delta_ts>2007-02-17 01:58:58 -0800</delta_ts>
            <desc>Simpler reduction</desc>
            <filename>12479 reduction.html</filename>
            <type>text/html</type>
            <size>193</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PHA+CiAgICBSZWxvYWQgdGhpcyBwYWdlLgo8L3A+CjxpZnJhbWUgIHNyYz0nZGF0YTp0ZXh0L2h0
bWwsCiAgICA8aW1nIHNyYz0ic29tZXRoaW5ndG9sb29rZm9yLmdpZiI+Cic+PC9pZnJhbWU+Cjxp
ZnJhbWUgIHNyYz0nZGF0YTp0ZXh0L2h0bWwsCiAgICA8aW1nIHNyYz0ic29tZXRoaW5ndG9sb29r
Zm9yLmdpZiI+Cic+PC9pZnJhbWU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13210</attachid>
            <date>2007-02-17 02:41:29 -0800</date>
            <delta_ts>2007-02-17 08:23:59 -0800</delta_ts>
            <desc>Replace the ASSERT with a check and allow simultaneous reloads</desc>
            <filename>12479_r1.patch</filename>
            <type>text/plain</type>
            <size>6207</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5NjgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMDItMTcgIE1pdHogUGV0dGVsICA8bWl0
ekB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI0NzkKKyAgICAgICAgICBBU1NFUlRJT04gRkFJTFVSRTogcmVzb3VyY2UtPmluQ2FjaGUoKSBp
biBXZWJDb3JlOjpDYWNoZTo6cmVtb3ZlCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9yZXNvdXJj
ZXMvc2ltdWx0YW5lb3VzLXJlbG9hZHMtYXNzZXJ0LWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvbG9hZGVyL3NpbXVsdGFuZW91cy1yZWxvYWRzLWFzc2VydC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3NpbXVsdGFuZW91cy1yZWxvYWRzLWFzc2Vy
dC5odG1sOiBBZGRlZC4KKwogMjAwNy0wMi0xNiAgQWRlbGUgUGV0ZXJzb24gIDxhZGVsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWl0ei4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL3NpbXVsdGFuZW91cy1yZWxvYWRzLWFzc2VydC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc2ltdWx0YW5lb3VzLXJlbG9hZHMtYXNz
ZXJ0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3NpbXVsdGFuZW91cy1yZWxvYWRzLWFzc2VydC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMyBAQAorQUxFUlQ6IElmIHlvdSBkbyBub3QgaGl0IGFuIGFzc2VydGlvbiBmYWls
dXJlIHdoZW4gcnVubmluZyB0aGlzIHRlc3Qgd2l0aCBhIGRlYnVnIGJ1aWxkIGFuZCB5b3UgZ2V0
IGEgU1VDQ0VTUyBtZXNzYWdlLCB0aGVuIHlvdSBwYXNzIHRoZSB0ZXN0LgorQUxFUlQ6IFNVQ0NF
U1MKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc2ltdWx0YW5lb3VzLXJlbG9hZHMt
YXNzZXJ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc2ltdWx0
YW5lb3VzLXJlbG9hZHMtYXNzZXJ0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9zaW11bHRhbmVvdXMtcmVsb2Fkcy1hc3NlcnQuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyOSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdCBmb3IgaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0Nzk8L3RpdGxlPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGFsZXJ0KCJJ
ZiB5b3UgZG8gbm90IGhpdCBhbiBhc3NlcnRpb24gZmFpbHVyZSB3aGVuIHJ1bm5pbmcgdGhpcyB0
ZXN0IHdpdGggYSBkZWJ1ZyBidWlsZCBhbmQgeW91IGdldCBhIFNVQ0NFU1MgbWVzc2FnZSwgdGhl
biB5b3UgcGFzcyB0aGUgdGVzdC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciByZWxvYWRl
ZCA9IGZhbHNlOworICAgICAgICBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghcmVsb2FkZWQpIHsKKyAgICAgICAgICAgICAgICByZWxvYWRlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgZnJhbWVzWzBdLmxvY2F0aW9uLnJlbG9hZCgpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJTVUNDRVNTIik7CisgICAgICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxmcmFtZXNldCBjb2xzPSIqIj4KKyAgICA8ZnJhbWUgc3JjPSJyZXNvdXJjZXMvc2ltdWx0
YW5lb3VzLXJlbG9hZHMtYXNzZXJ0LWZyYW1lLmh0bWwiPgorPC9mcmFtZXNldD4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9zaW11bHRhbmVvdXMtcmVs
b2Fkcy1hc3NlcnQtZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9yZXNvdXJjZXMvc2ltdWx0YW5lb3VzLXJlbG9hZHMtYXNzZXJ0LWZyYW1lLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvc2ltdWx0YW5l
b3VzLXJlbG9hZHMtYXNzZXJ0LWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcg
QEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPjwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InBhcmVudC5mcmFtZUxvYWRlZCgpIj4KKyAgICA8cD4KKyAgICAgICAgSWYgeW91IGRv
IG5vdCBoaXQgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBvcGVuaW5nCisgICAgICAgIHRoaXMg
dGVzdCB3aXRoIGEgZGVidWcgYnVpbGQsIHRoZW4geW91IHBhc3MgdGhlIHRlc3QuCisgICAgPC9w
PgorICAgIDxpZnJhbWUgIHNyYz0nZGF0YTp0ZXh0L2h0bWwsCisgICAgICAgIDxpbWcgc3JjPSJz
b21ldGhpbmd0b2xvb2tmb3IuZ2lmIj4KKyAgICAnPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgIHNy
Yz0nZGF0YTp0ZXh0L2h0bWwsCisgICAgICAgIDxpbWcgc3JjPSJzb21ldGhpbmd0b2xvb2tmb3Iu
Z2lmIj4KKyAgICAnPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5Njgw
KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAwNy0wMi0xNyAgTWl0eiBQZXR0ZWwgIDxtaXR6QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBmaXggaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkKKyAgICAgICAgICBBU1NFUlRJT04gRkFJTFVS
RTogcmVzb3VyY2UtPmluQ2FjaGUoKSBpbiBXZWJDb3JlOjpDYWNoZTo6cmVtb3ZlCisKKyAgICAg
ICAgVGVzdDogZmFzdC9sb2FkZXIvc2ltdWx0YW5lb3VzLXJlbG9hZHMtYXNzZXJ0Lmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9DYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cmVt
b3ZlKTogUmVwbGFjZWQgdGhlIGFzc2VydGlvbiB3aXRoIGEgY2hlY2sgd2hldGhlciB0aGUKKyAg
ICAgICAgcmVzb3VyY2UgaXMgaW4gdGhlIGNhY2hlLiBUaGUgcmVzb3VyY2UgY291bGQgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUKKyAgICAgICAgYXMgYSByZXN1bHQgb2YgYSByZWxv
YWQgb2NjdXJyaW5nIHNpbXVsdGFuZW91c2x5IGluIGEgZGlmZmVyZW50IGRvY3VtZW50LgorCiAy
MDA3LTAyLTE3ICBEYXZlIEh5YXR0IDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdl
IGhvdyB0ZXh0YXJlYSByZXNpemVycyBwYWludCB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIHdh
eSB0aGUgbWFpbiB3aW5kb3cgcmVzaXplciBwYWludHMuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9D
YWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGUuY3BwCShyZXZpc2lv
biAxOTY3OSkKKysrIFdlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTYwLDI1ICsxNjAsMjcgQEAgdm9pZCBDYWNoZTo6c2V0TWF4aW11bVNpemUodW5zaWduZWQgYnl0
ZQogCiB2b2lkIENhY2hlOjpyZW1vdmUoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewotICAg
IEFTU0VSVChyZXNvdXJjZS0+aW5DYWNoZSgpKTsKLQotICAgIC8vIFJlbW92ZSBmcm9tIHRoZSBy
ZXNvdXJjZSBtYXAuCi0gICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJlc291cmNlLT51cmwoKSk7Ci0g
ICAgcmVzb3VyY2UtPnNldEluQ2FjaGUoZmFsc2UpOwotCi0gICAgLy8gUmVtb3ZlIGZyb20gdGhl
IGFwcHJvcHJpYXRlIExSVSBsaXN0LgotICAgIHJlbW92ZUZyb21MUlVMaXN0KHJlc291cmNlKTsK
LQotICAgIC8vIE5vdGlmeSBhbGwgZG9jIGxvYWRlcnMgdGhhdCBtaWdodCBiZSBvYnNlcnZpbmcg
dGhpcyBvYmplY3Qgc3RpbGwgdGhhdCBpdCBoYXMgYmVlbgotICAgIC8vIGV4dHJhY3RlZCBmcm9t
IHRoZSBzZXQgb2YgcmVzb3VyY2VzLgotICAgIEhhc2hTZXQ8RG9jTG9hZGVyKj46Oml0ZXJhdG9y
IGVuZCA9IG1fZG9jTG9hZGVycy5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8RG9jTG9hZGVyKj46
Oml0ZXJhdG9yIGl0ciA9IG1fZG9jTG9hZGVycy5iZWdpbigpOyBpdHIgIT0gZW5kOyArK2l0cikK
LSAgICAgICAgKCppdHIpLT5yZW1vdmVDYWNoZWRSZXNvdXJjZShyZXNvdXJjZSk7Ci0KLSAgICAv
LyBTdWJ0cmFjdCBmcm9tIG91ciBzaXplIHRvdGFscy4KLSAgICBtX2N1cnJlbnRTaXplIC09IHJl
c291cmNlLT5zaXplKCk7Ci0gICAgaWYgKHJlc291cmNlLT5yZWZlcmVuY2VkKCkpCi0gICAgICAg
IG1fbGl2ZVJlc291cmNlc1NpemUgLT0gcmVzb3VyY2UtPnNpemUoKTsKKyAgICAvLyBUaGUgcmVz
b3VyY2UgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbW92ZWQgYnkgc29tZW9uZSBvdGhlciB0aGFu
IG91ciBjYWxsZXIsCisgICAgLy8gd2hvIG5lZWRlZCBhIGZyZXNoIGNvcHkgZm9yIGEgcmVsb2Fk
LiBTZWUgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDc5I2M2Pi4K
KyAgICBpZiAocmVzb3VyY2UtPmluQ2FjaGUoKSkgeworICAgICAgICAvLyBSZW1vdmUgZnJvbSB0
aGUgcmVzb3VyY2UgbWFwLgorICAgICAgICBtX3Jlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVy
bCgpKTsKKyAgICAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUoZmFsc2UpOworCisgICAgICAgIC8v
IFJlbW92ZSBmcm9tIHRoZSBhcHByb3ByaWF0ZSBMUlUgbGlzdC4KKyAgICAgICAgcmVtb3ZlRnJv
bUxSVUxpc3QocmVzb3VyY2UpOworCisgICAgICAgIC8vIE5vdGlmeSBhbGwgZG9jIGxvYWRlcnMg
dGhhdCBtaWdodCBiZSBvYnNlcnZpbmcgdGhpcyBvYmplY3Qgc3RpbGwgdGhhdCBpdCBoYXMgYmVl
bgorICAgICAgICAvLyBleHRyYWN0ZWQgZnJvbSB0aGUgc2V0IG9mIHJlc291cmNlcy4KKyAgICAg
ICAgSGFzaFNldDxEb2NMb2FkZXIqPjo6aXRlcmF0b3IgZW5kID0gbV9kb2NMb2FkZXJzLmVuZCgp
OworICAgICAgICBmb3IgKEhhc2hTZXQ8RG9jTG9hZGVyKj46Oml0ZXJhdG9yIGl0ciA9IG1fZG9j
TG9hZGVycy5iZWdpbigpOyBpdHIgIT0gZW5kOyArK2l0cikKKyAgICAgICAgICAgICgqaXRyKS0+
cmVtb3ZlQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UpOworCisgICAgICAgIC8vIFN1YnRyYWN0IGZy
b20gb3VyIHNpemUgdG90YWxzLgorICAgICAgICBtX2N1cnJlbnRTaXplIC09IHJlc291cmNlLT5z
aXplKCk7CisgICAgICAgIGlmIChyZXNvdXJjZS0+cmVmZXJlbmNlZCgpKQorICAgICAgICAgICAg
bV9saXZlUmVzb3VyY2VzU2l6ZSAtPSByZXNvdXJjZS0+c2l6ZSgpOworICAgIH0KIAogICAgIGlm
IChyZXNvdXJjZS0+Y2FuRGVsZXRlKCkpCiAgICAgICAgIGRlbGV0ZSByZXNvdXJjZTsK
</data>
<flag name="review"
          id="5154"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>