Bug 500068 thundersomething addon constantly crashes tb 2.0.0.22 final (win32, winxp) [@ nsCharTraits<unsigned short>::length - nsPref::SetUnicharPref]
r=dveditz
--- a/modules/libpref/src/nsPref.cpp
+++ b/modules/libpref/src/nsPref.cpp
@@ -442,30 +442,32 @@ NS_IMETHODIMP nsPref::CopyDefaultUnichar
NS_IMETHODIMP nsPref::SetUnicharPref(const char *pref, const PRUnichar *value)
{
nsresult rv;
nsCOMPtr<nsIPrefBranch> prefBranch = do_QueryInterface(mPrefService, &rv);
if (NS_SUCCEEDED(rv)) {
nsCOMPtr<nsISupportsString> theString = do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, &rv);
if (NS_SUCCEEDED(rv)) {
- theString->SetData(nsDependentString(value));
+ nsAutoString val(value);
+ theString->SetData(val);
rv = prefBranch->SetComplexValue(pref, NS_GET_IID(nsISupportsString), theString);
}
}
return rv;
}
NS_IMETHODIMP nsPref::SetDefaultUnicharPref(const char *pref, const PRUnichar *value)
{
nsresult rv;
nsCOMPtr<nsISupportsString> theString = do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, &rv);
if (NS_SUCCEEDED(rv)) {
- theString->SetData(nsDependentString(value));
+ nsAutoString val(value);
+ theString->SetData(val);
rv = mDefaultBranch->SetComplexValue(pref, NS_GET_IID(nsISupportsString), theString);
}
return rv;
}
NS_IMETHODIMP nsPref::GetLocalizedUnicharPref(const char *pref, PRUnichar **_retval)
{
nsresult rv;