summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-08 01:28:22 +0000
committernona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-08 01:28:22 +0000
commita7696348eead75c7b47b23a0bfe4c0723b6fbbdb (patch)
tree70848c367ce75d3303b12d2a3eb10c026111064e
parent0a950eee38476ec06a79cac9f8deac0ea2aaa8e7 (diff)
downloadchromium_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.cc3
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.