Commit 022093b8 authored by Simon Giesecke's avatar Simon Giesecke
Browse files

Bug 708901 - Migrate to nsTHashSet in dom/serviceworkers. r=dom-worker-reviewers,janv

Depends on D109323

Differential Revision: https://phabricator.services.mozilla.com/D109324
parent dd0cb7b3
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ void ServiceWorkerManagerService::RegisterActor(
  MOZ_ASSERT(aParent);
  MOZ_ASSERT(!mAgents.Contains(aParent));

  mAgents.PutEntry(aParent);
  mAgents.Insert(aParent);
}

void ServiceWorkerManagerService::UnregisterActor(
@@ -77,7 +77,7 @@ void ServiceWorkerManagerService::UnregisterActor(
  MOZ_ASSERT(aParent);
  MOZ_ASSERT(mAgents.Contains(aParent));

  mAgents.RemoveEntry(aParent);
  mAgents.Remove(aParent);
}

void ServiceWorkerManagerService::PropagateRegistration(
@@ -88,8 +88,7 @@ void ServiceWorkerManagerService::PropagateRegistration(
    return;
  }

  for (auto iter = mAgents.Iter(); !iter.Done(); iter.Next()) {
    RefPtr<ServiceWorkerManagerParent> parent = iter.Get()->GetKey();
  for (RefPtr<ServiceWorkerManagerParent> parent : mAgents) {
    MOZ_ASSERT(parent);

    if (parent->ID() != aParentID) {
@@ -123,8 +122,7 @@ void ServiceWorkerManagerService::PropagateSoftUpdate(
    return;
  }

  for (auto iter = mAgents.Iter(); !iter.Done(); iter.Next()) {
    RefPtr<ServiceWorkerManagerParent> parent = iter.Get()->GetKey();
  for (RefPtr<ServiceWorkerManagerParent> parent : mAgents) {
    MOZ_ASSERT(parent);

    nsString scope(aScope);
@@ -158,8 +156,7 @@ void ServiceWorkerManagerService::PropagateUnregister(
    return;
  }

  for (auto iter = mAgents.Iter(); !iter.Done(); iter.Next()) {
    RefPtr<ServiceWorkerManagerParent> parent = iter.Get()->GetKey();
  for (RefPtr<ServiceWorkerManagerParent> parent : mAgents) {
    MOZ_ASSERT(parent);

    if (parent->ID() != aParentID) {
@@ -177,8 +174,7 @@ void ServiceWorkerManagerService::PropagateRemove(uint64_t aParentID,
    return;
  }

  for (auto iter = mAgents.Iter(); !iter.Done(); iter.Next()) {
    RefPtr<ServiceWorkerManagerParent> parent = iter.Get()->GetKey();
  for (RefPtr<ServiceWorkerManagerParent> parent : mAgents) {
    MOZ_ASSERT(parent);

    if (parent->ID() != aParentID) {
@@ -201,8 +197,7 @@ void ServiceWorkerManagerService::PropagateRemoveAll(uint64_t aParentID) {

  service->RemoveAll();

  for (auto iter = mAgents.Iter(); !iter.Done(); iter.Next()) {
    RefPtr<ServiceWorkerManagerParent> parent = iter.Get()->GetKey();
  for (RefPtr<ServiceWorkerManagerParent> parent : mAgents) {
    MOZ_ASSERT(parent);

    if (parent->ID() != aParentID) {
+2 −2
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@
#include "nsISupportsImpl.h"
#include "nsHashKeys.h"
#include "nsTArray.h"
#include "nsTHashtable.h"
#include "nsTHashSet.h"

namespace mozilla {

@@ -61,7 +61,7 @@ class ServiceWorkerManagerService final {
  ServiceWorkerManagerService();
  ~ServiceWorkerManagerService();

  nsTHashtable<nsPtrHashKey<ServiceWorkerManagerParent>> mAgents;
  nsTHashSet<ServiceWorkerManagerParent*> mAgents;

  struct PendingUpdaterActor {
    nsCString mScope;