diff --git a/dom/plugins/ipc/PluginScriptableObjectChild.cpp b/dom/plugins/ipc/PluginScriptableObjectChild.cpp index ae399dde2ce4..739e1369b862 100644 --- a/dom/plugins/ipc/PluginScriptableObjectChild.cpp +++ b/dom/plugins/ipc/PluginScriptableObjectChild.cpp @@ -1266,22 +1266,19 @@ PluginScriptableObjectChild::GetInstanceForNPObject(NPObject* aObject) return d->instance; } -/* static */ PLDHashOperator -PluginScriptableObjectChild::CollectForInstance(NPObjectData* d, void* userArg) -{ - PluginInstanceChild* instance = static_cast(userArg); - if (d->instance == instance) { - NPObject* o = d->GetKey(); - instance->mDeletingHash->PutEntry(o); - } - return PL_DHASH_NEXT; -} - /* static */ void PluginScriptableObjectChild::NotifyOfInstanceShutdown(PluginInstanceChild* aInstance) { AssertPluginThread(); - if (sObjectMap) { - sObjectMap->EnumerateEntries(CollectForInstance, aInstance); + if (!sObjectMap) { + return; + } + + for (auto iter = sObjectMap->Iter(); !iter.Done(); iter.Next()) { + NPObjectData* d = iter.Get(); + if (d->instance == aInstance) { + NPObject* o = d->GetKey(); + aInstance->mDeletingHash->PutEntry(o); + } } } diff --git a/dom/plugins/ipc/PluginScriptableObjectChild.h b/dom/plugins/ipc/PluginScriptableObjectChild.h index 336d40cbcaa4..d0ea77857836 100644 --- a/dom/plugins/ipc/PluginScriptableObjectChild.h +++ b/dom/plugins/ipc/PluginScriptableObjectChild.h @@ -329,8 +329,6 @@ private: PluginScriptableObjectChild* actor; }; - static PLDHashOperator CollectForInstance(NPObjectData* d, void* userArg); - /** * mObjectMap contains all the currently active NPObjects (from NPN_CreateObject until the * final release/dealloc, whether or not an actor is currently associated with the object.