summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoracolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-21 16:13:17 +0000
committeracolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-21 16:13:17 +0000
commit781ca4e4ebd35dba5012a86ef68921d0b6b9d74b (patch)
treef2039a4297a4a5ff13f6713dc46afcc2e02db41b
parent336e4489eacbb470ff5d22deb464beb9cb832422 (diff)
downloadchromium_src-781ca4e4ebd35dba5012a86ef68921d0b6b9d74b.zip
chromium_src-781ca4e4ebd35dba5012a86ef68921d0b6b9d74b.tar.gz
chromium_src-781ca4e4ebd35dba5012a86ef68921d0b6b9d74b.tar.bz2
Fix DCHECK caused by updating total_memory_usage_ for cloned streams.
BUG=240603 Review URL: https://chromiumcodereview.appspot.com/23726048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224586 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/streams/stream_registry.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/content/browser/streams/stream_registry.cc b/content/browser/streams/stream_registry.cc
index 1a83c41..f722f57 100644
--- a/content/browser/streams/stream_registry.cc
+++ b/content/browser/streams/stream_registry.cc
@@ -55,9 +55,14 @@ void StreamRegistry::UnregisterStream(const GURL& url) {
if (iter == streams_.end())
return;
- size_t buffered_bytes = iter->second->last_total_buffered_bytes();
- DCHECK_LE(buffered_bytes, total_memory_usage_);
- total_memory_usage_ -= buffered_bytes;
+ // Only update |total_memory_usage_| if |url| is NOT a Stream clone because
+ // cloned streams do not update |total_memory_usage_|.
+ if (iter->second->url() == url) {
+ size_t buffered_bytes = iter->second->last_total_buffered_bytes();
+ DCHECK_LE(buffered_bytes, total_memory_usage_);
+ total_memory_usage_ -= buffered_bytes;
+ }
+
streams_.erase(url);
}