diff options
author | earthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-04 19:55:29 +0000 |
---|---|---|
committer | earthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-04 19:55:29 +0000 |
commit | 0ccf48a5911ad14a7e54b79ffc5d737ca628ca50 (patch) | |
tree | 8c6b891d00de94c2b076491d66827798a2f384c0 /chrome/browser/speech | |
parent | 8a85398c4980d42990c5cd53bc9f9c83ced75f3b (diff) | |
download | chromium_src-0ccf48a5911ad14a7e54b79ffc5d737ca628ca50.zip chromium_src-0ccf48a5911ad14a7e54b79ffc5d737ca628ca50.tar.gz chromium_src-0ccf48a5911ad14a7e54b79ffc5d737ca628ca50.tar.bz2 |
Fix memory leak in TtsExtensionEventHandler::OnTtsEvent().
Make sure we always delete the handler if the Utterance is finished.
BUG=312306
R=dmazzoni@chromium.org
Review URL: https://codereview.chromium.org/49073002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232767 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/speech')
-rw-r--r-- | chrome/browser/speech/extension_api/tts_extension_api.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chrome/browser/speech/extension_api/tts_extension_api.cc b/chrome/browser/speech/extension_api/tts_extension_api.cc index 14c5641..36049a3 100644 --- a/chrome/browser/speech/extension_api/tts_extension_api.cc +++ b/chrome/browser/speech/extension_api/tts_extension_api.cc @@ -92,13 +92,18 @@ void TtsExtensionEventHandler::OnTtsEvent(Utterance* utterance, TtsEventType event_type, int char_index, const std::string& error_message) { - if (utterance->src_id() < 0) + if (utterance->src_id() < 0) { + if (utterance->finished()) + delete this; return; + } const std::set<TtsEventType>& desired_event_types = utterance->desired_event_types(); if (desired_event_types.size() > 0 && desired_event_types.find(event_type) == desired_event_types.end()) { + if (utterance->finished()) + delete this; return; } |