From 4d79a620bf3cad6b65267af6ecac3657db620dc8 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Thu, 28 Jan 2016 14:08:19 -0800 Subject: [PATCH] Bug 1187151 (part 13) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=baku. --HG-- extra : rebase_source : 9d3956d74a12649763c3da24e66f20b8013d87d2 --- .../synth/speechd/SpeechDispatcherService.cpp | 40 ++++++------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp b/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp index e30886c4d215..e1310f1fcba3 100644 --- a/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp +++ b/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp @@ -411,38 +411,24 @@ SpeechDispatcherService::Setup() //mInitialized = true; } -struct VoiceTraverserData -{ - SpeechDispatcherService* mService; - nsSynthVoiceRegistry* mRegistry; -}; - // private methods -static PLDHashOperator -AddVoiceTraverser(const nsAString& aUri, - RefPtr& aVoice, - void* aUserArg) -{ - VoiceTraverserData* data = static_cast(aUserArg); - - // This service can only speak one utterance at a time, se we set - // aQueuesUtterances to true in order to track global state and schedule - // access to this service. - DebugOnly rv = data->mRegistry->AddVoice(data->mService, aUri, - aVoice->mName, aVoice->mLanguage, - aVoice->mName.EqualsLiteral("default"), true); - - NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Failed to add voice"); - - return PL_DHASH_NEXT; -} - void SpeechDispatcherService::RegisterVoices() { - VoiceTraverserData data = { this, nsSynthVoiceRegistry::GetInstance() }; - mVoices.Enumerate(AddVoiceTraverser, &data); + nsSynthVoiceRegistry* registry = nsSynthVoiceRegistry::GetInstance(); + for (auto iter = mVoices.Iter(); !iter.Done(); iter.Next()) { + RefPtr& voice = iter.Data(); + + // This service can only speak one utterance at a time, so we set + // aQueuesUtterances to true in order to track global state and schedule + // access to this service. + DebugOnly rv = + registry->AddVoice(this, iter.Key(), voice->mName, voice->mLanguage, + voice->mName.EqualsLiteral("default"), true); + + NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Failed to add voice"); + } mInitThread->Shutdown(); mInitThread = nullptr;