Index: components/signin/core/browser/account_tracker_service.cc |
diff --git a/components/signin/core/browser/account_tracker_service.cc b/components/signin/core/browser/account_tracker_service.cc |
index dd3f339588f5271a1768459b8c98207ef76930f0..129b124288cce69c893e1cf8f34592ede9156bc3 100644 |
--- a/components/signin/core/browser/account_tracker_service.cc |
+++ b/components/signin/core/browser/account_tracker_service.cc |
@@ -350,7 +350,7 @@ void AccountTrackerService::LoadFromPrefs() { |
contains_deprecated_service_flags = true; |
std::string flag_string; |
for (const auto& flag : *service_flags_list) { |
- if (flag->GetAsString(&flag_string) && |
+ if (flag.GetAsString(&flag_string) && |
flag_string == kChildAccountServiceFlag) { |
is_child_account = true; |
break; |
@@ -407,6 +407,8 @@ void AccountTrackerService::SaveToPrefs(const AccountState& state) { |
if (!dict) { |
dict = new base::DictionaryValue(); |
update->Append(base::WrapUnique(dict)); |
+ // |dict| is invalidated at this point, so it needs to be reset. |
+ update->GetDictionary(update->GetSize() - 1, &dict); |
dict->SetString(kAccountKeyPath, account_id_16); |
} |