Bug 1394578 - Move Pref::AssignPrefValueToDomPrefVAlue() to PrefValue::ToDomPrefValue(). r=glandium draft
authorNicholas Nethercote <nnethercote@mozilla.com>
Thu, 23 Nov 2017 16:35:35 +1100
changeset 702910 624cc4ce298e9311b4580307543f86b2465fea54
parent 702909 6da6f38221e1718130eaa0449b19d6cff3ed8cfc
child 702911 cfc9400186bccd8c873617cbc835872837362ca1
child 702919 02d7f1b5af99ff2732e338c8c5834f48daaa9e58
push id90624
push usernnethercote@mozilla.com
push dateThu, 23 Nov 2017 23:13:32 +0000
reviewersglandium
bugs1394578
milestone59.0a1
Bug 1394578 - Move Pref::AssignPrefValueToDomPrefVAlue() to PrefValue::ToDomPrefValue(). r=glandium It's a bit nicer that way. MozReview-Commit-ID: HpVaxje7XIP
modules/libpref/Preferences.cpp
--- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp
@@ -174,16 +174,36 @@ union PrefValue {
     }
   }
 
   void Replace(PrefType aOldType, PrefType aNewType, PrefValue aNewValue)
   {
     Clear(aOldType);
     Init(aNewType, aNewValue);
   }
+
+  void ToDomPrefValue(PrefType aType, dom::PrefValue* aDomValue)
+  {
+    switch (aType) {
+      case PrefType::String:
+        *aDomValue = nsDependentCString(mStringVal);
+        return;
+
+      case PrefType::Int:
+        *aDomValue = mIntVal;
+        return;
+
+      case PrefType::Bool:
+        *aDomValue = mBoolVal;
+        return;
+
+      default:
+        MOZ_CRASH();
+    }
+  }
 };
 
 #ifdef DEBUG
 const char*
 PrefTypeToString(PrefType aType)
 {
   switch (aType) {
     case PrefType::String:
@@ -374,56 +394,31 @@ public:
     if (!stringVal) {
       return NS_ERROR_UNEXPECTED;
     }
 
     aResult = stringVal;
     return NS_OK;
   }
 
-private:
-  static void AssignPrefValueToDomPrefValue(PrefType aType,
-                                            PrefValue* aValue,
-                                            dom::PrefValue* aDomValue)
-  {
-    switch (aType) {
-      case PrefType::String:
-        *aDomValue = nsDependentCString(aValue->mStringVal);
-        return;
-
-      case PrefType::Int:
-        *aDomValue = aValue->mIntVal;
-        return;
-
-      case PrefType::Bool:
-        *aDomValue = !!aValue->mBoolVal;
-        return;
-
-      default:
-        MOZ_CRASH();
-    }
-  }
-
-public:
   void ToDomPref(dom::Pref* aDomPref)
   {
     aDomPref->name() = mName;
 
     if (mHasDefaultValue) {
       aDomPref->defaultValue() = dom::PrefValue();
-      AssignPrefValueToDomPrefValue(
-        Type(), &mDefaultValue, &aDomPref->defaultValue().get_PrefValue());
+      mDefaultValue.ToDomPrefValue(Type(),
+                                   &aDomPref->defaultValue().get_PrefValue());
     } else {
       aDomPref->defaultValue() = null_t();
     }
 
     if (mHasUserValue) {
       aDomPref->userValue() = dom::PrefValue();
-      AssignPrefValueToDomPrefValue(
-        Type(), &mUserValue, &aDomPref->userValue().get_PrefValue());
+      mUserValue.ToDomPrefValue(Type(), &aDomPref->userValue().get_PrefValue());
     } else {
       aDomPref->userValue() = null_t();
     }
 
     MOZ_ASSERT(aDomPref->defaultValue().type() ==
                  dom::MaybePrefValue::Tnull_t ||
                aDomPref->userValue().type() == dom::MaybePrefValue::Tnull_t ||
                (aDomPref->defaultValue().get_PrefValue().type() ==