Index: Source/core/fetch/ResourceFetcher.cpp |
diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp |
index 48ef9d71fca50d00a5308b29ee33d42409e5173d..d90fbdec68168b13bc0030d4d9e8faa4888ef188 100644 |
--- a/Source/core/fetch/ResourceFetcher.cpp |
+++ b/Source/core/fetch/ResourceFetcher.cpp |
@@ -1250,10 +1250,10 @@ void ResourceFetcher::didDownloadData(const Resource* resource, int dataLength, |
void ResourceFetcher::subresourceLoaderFinishedLoadingOnePart(ResourceLoader* loader) |
{ |
- if (m_multipartLoaders) |
- m_multipartLoaders->add(loader); |
- if (m_loaders) |
- m_loaders->remove(loader); |
+ if (!m_multipartLoaders) |
+ m_multipartLoaders = adoptPtr(new ResourceLoaderSet()); |
+ m_multipartLoaders->add(loader); |
+ m_loaders->remove(loader); |
if (LocalFrame* frame = this->frame()) |
return frame->loader().checkLoadComplete(m_documentLoader); |
} |
@@ -1270,9 +1270,10 @@ void ResourceFetcher::didInitializeResourceLoader(ResourceLoader* loader) |
void ResourceFetcher::willTerminateResourceLoader(ResourceLoader* loader) |
{ |
- if (!m_loaders || !m_loaders->contains(loader)) |
- return; |
- m_loaders->remove(loader); |
+ if (m_loaders && m_loaders->contains(loader)) |
+ m_loaders->remove(loader); |
+ if (m_multipartLoaders && m_multipartLoaders->contains(loader)) |
+ m_multipartLoaders->remove(loader); |
if (LocalFrame* frame = this->frame()) |
frame->loader().checkLoadComplete(m_documentLoader); |
} |