void MsaaIdGenerator::ReleaseContentProcessIDFor(dom::ContentParentId aIPCContentProcessID) { MOZ_ASSERT(XRE_IsParentProcess() && NS_IsMainThread()); if (!sContentParentIdMap) { // Since Content IDs are generated lazily, ContentParent might attempt // to release an ID that was never allocated to begin with. return; } Maybe<uint32_t> mapping = sContentParentIdMap->GetAndRemove(aIPCContentProcessID); if (!mapping) { // Since Content IDs are generated lazily, ContentParent might attempt // to release an ID that was never allocated to begin with. return; } uint32_t index = mapping.ref() / kBitsPerElement; MOZ_ASSERT(index < ArrayLength(sContentProcessIdBitmap)); uint64_t mask = 1ULL << (mapping.ref() % kBitsPerElement); MOZ_ASSERT(sContentProcessIdBitmap[index] & mask); sContentProcessIdBitmap[index] &= ~mask; }