diff options
author | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-08 01:28:22 +0000 |
---|---|---|
committer | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-08 01:28:22 +0000 |
commit | a7696348eead75c7b47b23a0bfe4c0723b6fbbdb (patch) | |
tree | 70848c367ce75d3303b12d2a3eb10c026111064e | |
parent | 0a950eee38476ec06a79cac9f8deac0ea2aaa8e7 (diff) | |
download | chromium_src-a7696348eead75c7b47b23a0bfe4c0723b6fbbdb.zip chromium_src-a7696348eead75c7b47b23a0bfe4c0723b6fbbdb.tar.gz chromium_src-a7696348eead75c7b47b23a0bfe4c0723b6fbbdb.tar.bz2 |
Should reset handler before releasing IBusUiController instance.
Otherwise IBusUiController will be used after freed by ibus operation sent from engine.
BUG=168310
TEST=None
Review URL: https://chromiumcodereview.appspot.com/11777010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175454 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc b/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc index 0462400..360e2ff 100644 --- a/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc +++ b/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc @@ -102,6 +102,9 @@ CandidateWindowControllerImpl::CandidateWindowControllerImpl() } CandidateWindowControllerImpl::~CandidateWindowControllerImpl() { + if (DBusThreadManager::Get()->GetIBusPanelService()) + DBusThreadManager::Get()->GetIBusPanelService()-> + SetUpCandidateWindowHandler(NULL); ibus_ui_controller_->RemoveObserver(this); candidate_window_->RemoveObserver(this); // ibus_ui_controller_'s destructor will close the connection. |