Index: third_party/WebKit/Source/core/loader/ThreadableLoaderClientWrapper.h |
diff --git a/third_party/WebKit/Source/core/loader/ThreadableLoaderClientWrapper.h b/third_party/WebKit/Source/core/loader/ThreadableLoaderClientWrapper.h |
index aee4ccbab5ff8b62d9ef279099e6a7d6db5c963a..c78779b5354fa6c62d48692272e3bcf09aff82dd 100644 |
--- a/third_party/WebKit/Source/core/loader/ThreadableLoaderClientWrapper.h |
+++ b/third_party/WebKit/Source/core/loader/ThreadableLoaderClientWrapper.h |
@@ -90,29 +90,41 @@ public: |
void didFinishLoading(unsigned long identifier, double finishTime) |
{ |
m_done = true; |
- if (m_client) |
- m_client->didFinishLoading(identifier, finishTime); |
+ if (m_client) { |
+ ThreadableLoaderClient* client = m_client; |
+ m_client = nullptr; |
+ client->didFinishLoading(identifier, finishTime); |
+ } |
} |
void didFail(const ResourceError& error) |
{ |
m_done = true; |
- if (m_client) |
- m_client->didFail(error); |
+ if (m_client) { |
+ ThreadableLoaderClient* client = m_client; |
+ m_client = nullptr; |
+ client->didFail(error); |
+ } |
} |
void didFailAccessControlCheck(const ResourceError& error) |
{ |
m_done = true; |
- if (m_client) |
- m_client->didFailAccessControlCheck(error); |
+ if (m_client) { |
+ ThreadableLoaderClient* client = m_client; |
+ m_client = nullptr; |
+ client->didFailAccessControlCheck(error); |
+ } |
} |
void didFailRedirectCheck() |
{ |
m_done = true; |
- if (m_client) |
- m_client->didFailRedirectCheck(); |
+ if (m_client) { |
+ ThreadableLoaderClient* client = m_client; |
+ m_client = nullptr; |
+ client->didFailRedirectCheck(); |
+ } |
} |
void didDownloadData(int dataLength) |