diff options
author | mdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-02 06:36:53 +0000 |
---|---|---|
committer | mdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-02 06:36:53 +0000 |
commit | 390a5b654a4a96fa57b4719104c8acb78f98d39d (patch) | |
tree | 36c0afe3bccf93cf7b85ed75a851c43e2990fe3c /net/proxy/proxy_config_service_linux.cc | |
parent | d73363636e585927f4e122c3ad53b0b17ad11f44 (diff) | |
download | chromium_src-390a5b654a4a96fa57b4719104c8acb78f98d39d.zip chromium_src-390a5b654a4a96fa57b4719104c8acb78f98d39d.tar.gz chromium_src-390a5b654a4a96fa57b4719104c8acb78f98d39d.tar.bz2 |
Linux: add an extra CHECK to try and figure out bugs 75508 and 84673.
BUG=75508,84673
Review URL: http://codereview.chromium.org/7066044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87588 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/proxy_config_service_linux.cc')
-rw-r--r-- | net/proxy/proxy_config_service_linux.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy/proxy_config_service_linux.cc index b1738bd..9bbca6a 100644 --- a/net/proxy/proxy_config_service_linux.cc +++ b/net/proxy/proxy_config_service_linux.cc @@ -199,7 +199,7 @@ const int kDebounceTimeoutMilliseconds = 250; class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { public: SettingGetterImplGConf() - : client_(NULL), notify_delegate_(NULL), loop_(NULL) {} + : this_(this), client_(NULL), notify_delegate_(NULL), loop_(NULL) {} virtual ~SettingGetterImplGConf() { // client_ should have been released before now, from @@ -446,6 +446,9 @@ class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { } void OnChangeNotification() { + // See below. This check is to try and track bugs 75508 and 84673. + // TODO(mdm): remove this check once it gives us some results. + CHECK(this_ == this); // We don't use Reset() because the timer may not yet be running. // (In that case Stop() is a no-op.) debounce_timer_.Stop(); @@ -465,6 +468,12 @@ class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { setting_getter->OnChangeNotification(); } + // See bugs 75508 and 84673. I kind of suspect we're getting bogus pointers to + // this object somehow in callbacks from GConf; this pointer is always set to + // |this| on construction and should help verify whether this object has been + // scribbled upon or if we have a stray pointer somehow. + SettingGetterImplGConf* this_; + GConfClient* client_; ProxyConfigServiceLinux::Delegate* notify_delegate_; base::OneShotTimer<SettingGetterImplGConf> debounce_timer_; |