Bug 1418156 - Move pref_EntryHasAdvisablySizedValues() into PrefHashEntry. r=glandium
MozReview-Commit-ID: 4p0KnaOOi2j
--- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp
@@ -266,16 +266,40 @@ public:
MOZ_ASSERT(aSetting->defaultValue().type() ==
dom::MaybePrefValue::Tnull_t ||
aSetting->userValue().type() == dom::MaybePrefValue::Tnull_t ||
(aSetting->defaultValue().get_PrefValue().type() ==
aSetting->userValue().get_PrefValue().type()));
}
+ bool HasAdvisablySizedValues()
+ {
+ if (!IsTypeString()) {
+ return true;
+ }
+
+ const char* stringVal;
+ if (HasDefaultValue()) {
+ stringVal = mDefaultValue.mStringVal;
+ if (strlen(stringVal) > MAX_ADVISABLE_PREF_LENGTH) {
+ return false;
+ }
+ }
+
+ if (HasUserValue()) {
+ stringVal = mUserValue.mStringVal;
+ if (strlen(stringVal) > MAX_ADVISABLE_PREF_LENGTH) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf)
{
// Note: mKey is allocated in gPrefNameArena, measured elsewhere.
size_t n = 0;
if (IsTypeString()) {
if (HasDefaultValue()) {
n += aMallocSizeOf(mDefaultValue.mStringVal);
}
@@ -453,41 +477,16 @@ pref_savePrefs()
nsPrintfCString str("user_pref(%s, %s);", prefName.get(), prefValue.get());
savedPrefs.AppendElement(str);
}
return savedPrefs;
}
static bool
-pref_EntryHasAdvisablySizedValues(PrefHashEntry* aPref)
-{
- if (!aPref->IsTypeString()) {
- return true;
- }
-
- const char* stringVal;
- if (aPref->HasDefaultValue()) {
- stringVal = aPref->mDefaultValue.mStringVal;
- if (strlen(stringVal) > MAX_ADVISABLE_PREF_LENGTH) {
- return false;
- }
- }
-
- if (aPref->HasUserValue()) {
- stringVal = aPref->mUserValue.mStringVal;
- if (strlen(stringVal) > MAX_ADVISABLE_PREF_LENGTH) {
- return false;
- }
- }
-
- return true;
-}
-
-static bool
PREF_HasUserPref(const char* aPrefName)
{
if (!gHashTable) {
return false;
}
PrefHashEntry* pref = pref_HashTableLookup(aPrefName);
return pref && pref->HasUserValue();
@@ -3760,38 +3759,32 @@ Preferences::SetPreference(const PrefSet
// NB: we should never try to clear a default value, that doesn't
// make sense
}
void
Preferences::GetPreference(PrefSetting* aSetting)
{
PrefHashEntry* pref = pref_HashTableLookup(aSetting->name().get());
- if (!pref) {
- return;
- }
-
- if (pref_EntryHasAdvisablySizedValues(pref)) {
+ if (pref && pref->HasAdvisablySizedValues()) {
pref->ToSetting(aSetting);
}
}
void
Preferences::GetPreferences(InfallibleTArray<PrefSetting>* aSettings)
{
aSettings->SetCapacity(gHashTable->Capacity());
for (auto iter = gHashTable->Iter(); !iter.Done(); iter.Next()) {
auto pref = static_cast<PrefHashEntry*>(iter.Get());
- if (!pref_EntryHasAdvisablySizedValues(pref)) {
- continue;
+ if (pref->HasAdvisablySizedValues()) {
+ dom::PrefSetting* setting = aSettings->AppendElement();
+ pref->ToSetting(setting);
}
-
- dom::PrefSetting* setting = aSettings->AppendElement();
- pref->ToSetting(setting);
}
}
#ifdef DEBUG
void
Preferences::SetInitPhase(pref_initPhase aPhase)
{
gPhase = aPhase;