summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_config_service_linux.cc
diff options
context:
space:
mode:
authormdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-02 06:36:53 +0000
committermdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-02 06:36:53 +0000
commit390a5b654a4a96fa57b4719104c8acb78f98d39d (patch)
tree36c0afe3bccf93cf7b85ed75a851c43e2990fe3c /net/proxy/proxy_config_service_linux.cc
parentd73363636e585927f4e122c3ad53b0b17ad11f44 (diff)
downloadchromium_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.cc11
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_;