diff options
author | armansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-28 21:15:57 +0000 |
---|---|---|
committer | armansito@chromium.org <armansito@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-28 21:15:57 +0000 |
commit | ba570755b30f617e177c4575d34b0aecfccc3ada (patch) | |
tree | f1735a43de36264e4fbae5725722424e1e63cc99 | |
parent | f4d43cbf80508134e0cad7e68946d95a61075a87 (diff) | |
download | chromium_src-ba570755b30f617e177c4575d34b0aecfccc3ada.zip chromium_src-ba570755b30f617e177c4575d34b0aecfccc3ada.tar.gz chromium_src-ba570755b30f617e177c4575d34b0aecfccc3ada.tar.bz2 |
Fix NFC related crash in DBusThreadManager destructor.
DBusThreadManager declared its pointers to NfcAdapterClient and
NfcManagerClient in the incorrect order, without respecting the
NfcAdapterClient dependency on NfcManagerClient. Fixed it, so that
NfcManagerClient will be cleaned up after NfcAdapterClient.
BUG=312243
R=stevenjb@chromium.org
Review URL: https://codereview.chromium.org/49273002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231403 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chromeos/dbus/dbus_thread_manager.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/chromeos/dbus/dbus_thread_manager.cc b/chromeos/dbus/dbus_thread_manager.cc index 21794b5..b98e07c 100644 --- a/chromeos/dbus/dbus_thread_manager.cc +++ b/chromeos/dbus/dbus_thread_manager.cc @@ -404,8 +404,11 @@ class DBusThreadManagerImpl : public DBusThreadManager { scoped_ptr<ImageBurnerClient> image_burner_client_; scoped_ptr<IntrospectableClient> introspectable_client_; scoped_ptr<ModemMessagingClient> modem_messaging_client_; - scoped_ptr<NfcAdapterClient> nfc_adapter_client_; + // NfcAdapterClient depends on NfcManagerClient. We declare NfcManagerClient + // first, so that it won't be deallocated before NfcAdapterClient is done + // cleaning up. scoped_ptr<NfcManagerClient> nfc_manager_client_; + scoped_ptr<NfcAdapterClient> nfc_adapter_client_; scoped_ptr<PermissionBrokerClient> permission_broker_client_; scoped_ptr<SystemClockClient> system_clock_client_; scoped_ptr<PowerManagerClient> power_manager_client_; |