summaryrefslogtreecommitdiffstats
path: root/chrome/browser/speech
diff options
context:
space:
mode:
authorearthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-04 19:55:29 +0000
committerearthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-04 19:55:29 +0000
commit0ccf48a5911ad14a7e54b79ffc5d737ca628ca50 (patch)
tree8c6b891d00de94c2b076491d66827798a2f384c0 /chrome/browser/speech
parent8a85398c4980d42990c5cd53bc9f9c83ced75f3b (diff)
downloadchromium_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.cc7
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;
}