Index: chrome/browser/api/prefs/pref_member.cc |
diff --git a/chrome/browser/api/prefs/pref_member.cc b/chrome/browser/api/prefs/pref_member.cc |
index e81b13a61081620b7495dbb94ac4f697fe0d344d..ee0ca9869cddf69db657e6d292dae5745b125fc2 100644 |
--- a/chrome/browser/api/prefs/pref_member.cc |
+++ b/chrome/browser/api/prefs/pref_member.cc |
@@ -37,12 +37,17 @@ void PrefMemberBase::Init(const char* pref_name, |
<< pref_name << " not registered."; |
// Add ourselves as a pref observer so we can keep our local value in sync. |
- prefs_->AddPrefObserver(pref_name, this); |
+ prefs_->AddPrefObserver(pref_name, |
+ base::Bind(&PrefMemberBase::OnPreferenceChanged, |
+ base::Unretained(this), prefs, pref_name)); |
} |
void PrefMemberBase::Destroy() { |
if (prefs_ && !pref_name_.empty()) { |
- prefs_->RemovePrefObserver(pref_name_.c_str(), this); |
+ prefs_->RemovePrefObserver(pref_name_.c_str(), |
+ base::Bind(&PrefMemberBase::OnPreferenceChanged, |
+ base::Unretained(this), |
+ prefs_, pref_name_.c_str())); |
prefs_ = NULL; |
} |
} |