Bug 1493955 - Store floating-point preferences in a locale-independent way r=njn

Differential Revision: https://phabricator.services.mozilla.com/D6796
This commit is contained in:
Gabriele Svelto
2018-09-27 20:41:39 +00:00
parent d744a60ad9
commit 32494f34c7
9 changed files with 36 additions and 6 deletions

View File

@@ -2394,6 +2394,7 @@ nsPrefBranch::GetFloatPref(const char* aPrefName, float* aRetVal)
nsAutoCString stringVal;
nsresult rv = GetCharPref(aPrefName, stringVal);
if (NS_SUCCEEDED(rv)) {
// ToFloat() does a locale-independent conversion.
*aRetVal = stringVal.ToFloat(&rv);
}
@@ -5035,6 +5036,7 @@ Preferences::GetFloat(const char* aPrefName,
nsAutoCString result;
nsresult rv = Preferences::GetCString(aPrefName, result, aKind);
if (NS_SUCCEEDED(rv)) {
// ToFloat() does a locale-independent conversion.
*aResult = result.ToFloat(&rv);
}
return rv;
@@ -5845,7 +5847,9 @@ static void
SetPref_float(const char* aName, float aDefaultValue)
{
PrefValue value;
nsPrintfCString defaultValue("%f", aDefaultValue);
// Convert the value in a locale-independent way.
nsAutoCString defaultValue;
defaultValue.AppendFloat(aDefaultValue);
value.mStringVal = defaultValue.get();
pref_SetPref(aName,
PrefType::String,
@@ -5973,8 +5977,7 @@ InitVarCachePref(const nsACString& aName,
}
}
// XXX: this will eventually become used
MOZ_MAYBE_UNUSED static void
static void
InitVarCachePref(const nsACString& aName,
float* aCache,
float aDefaultValue,