Bug 440908 - Remove gIsAnyPrefLocked. r=glandium
It optimizes Preferences::IsLocked(), but that function is called fewer than
200 times while starting the browser and opening a range of tabs.
MozReview-Commit-ID: 5q0zS8TSwdu
--- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp
@@ -815,18 +815,16 @@ private:
static PLDHashTable* gHashTable;
// The callback list contains all the priority callbacks followed by the
// non-priority callbacks. gLastPriorityNode records where the first part ends.
static CallbackNode* gFirstCallback = nullptr;
static CallbackNode* gLastPriorityNode = nullptr;
-static bool gIsAnyPrefLocked = false;
-
// These are only used during the call to NotifyCallbacks().
static bool gCallbacksInProgress = false;
static bool gShouldCleanupDeadNodes = false;
static PLDHashTableOps pref_HashTableOps = {
PLDHashTable::HashStringKey, PrefEntry::MatchEntry,
PLDHashTable::MoveEntryStub, PrefEntry::ClearEntry,
PrefEntry::InitEntry,
@@ -4180,17 +4178,16 @@ Preferences::LockInAnyProcess(const char
Pref* pref = pref_HashTableLookup(aPrefName);
if (!pref) {
return NS_ERROR_UNEXPECTED;
}
if (!pref->IsLocked()) {
pref->SetIsLocked(true);
- gIsAnyPrefLocked = true;
NotifyCallbacks(aPrefName);
}
return NS_OK;
}
/* static */ nsresult
Preferences::Lock(const char* aPrefName)
@@ -4218,24 +4215,18 @@ Preferences::Unlock(const char* aPrefNam
return NS_OK;
}
/* static */ bool
Preferences::IsLocked(const char* aPrefName)
{
NS_ENSURE_TRUE(InitStaticMembers(), false);
- if (gIsAnyPrefLocked) {
- Pref* pref = pref_HashTableLookup(aPrefName);
- if (pref && pref->IsLocked()) {
- return true;
- }
- }
-
- return false;
+ Pref* pref = pref_HashTableLookup(aPrefName);
+ return pref && pref->IsLocked();
}
/* static */ nsresult
Preferences::ClearUserInAnyProcess(const char* aPrefName)
{
NS_ENSURE_TRUE(InitStaticMembers(), NS_ERROR_NOT_AVAILABLE);
PrefEntry* entry = pref_HashTableLookupInner(aPrefName);