Index: chrome/browser/spellchecker/spelling_service_client.cc |
diff --git a/chrome/browser/spellchecker/spelling_service_client.cc b/chrome/browser/spellchecker/spelling_service_client.cc |
index 8ef8bcf738ddc350324f9c56deb8aa6677d1c55d..a0506ba052f848dc40e5f30e9cc8e8e10954bf22 100644 |
--- a/chrome/browser/spellchecker/spelling_service_client.cc |
+++ b/chrome/browser/spellchecker/spelling_service_client.cc |
@@ -254,8 +254,11 @@ void SpellingServiceClient::OnURLFetchComplete( |
fetcher->GetResponseAsString(&data); |
success = ParseResponse(data, &results); |
} |
- callback_data->callback.Run(success, callback_data->text, results); |
spellcheck_fetchers_.erase(fetcher.get()); |
+ |
+ // The callback may release the last (transitive) dependency on |this|. It |
+ // MUST be the last function called. |
+ callback_data->callback.Run(success, callback_data->text, results); |
} |
net::URLFetcher* SpellingServiceClient::CreateURLFetcher(const GURL& url) { |