Bug 1418156 - Move pref_EntryHasAdvisablySizedValues() into PrefHashEntry. r=glandium draft
authorNicholas Nethercote <nnethercote@mozilla.com>
Fri, 17 Nov 2017 13:30:39 +1100
changeset 699358 b6b4c5854e392ec2de8df7fdf8f2ec90ec535fdb
parent 699357 bff84d32de1fc1d97a26036b14dbfc756bf698c9
child 699359 372322783fbb342a736eeacebee68fb67f4286a0
push id89542
push usernnethercote@mozilla.com
push dateFri, 17 Nov 2017 02:31:06 +0000
reviewersglandium
bugs1418156
milestone59.0a1
Bug 1418156 - Move pref_EntryHasAdvisablySizedValues() into PrefHashEntry. r=glandium MozReview-Commit-ID: 4p0KnaOOi2j
modules/libpref/Preferences.cpp
--- 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;