Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4346)

Unified Diff: chromeos/dbus/ibus/ibus_engine_service.cc

Issue 14404007: Fix crash on extension IME reloading on Linux Desktop with chromeos=1. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/dbus/ibus/ibus_engine_service.cc
diff --git a/chromeos/dbus/ibus/ibus_engine_service.cc b/chromeos/dbus/ibus/ibus_engine_service.cc
index a5e298dad96b8957e32ca3b6827dc6b80f2117c7..e670398fbbd5cfcde8908948435c4e8bb00cf4ff 100644
--- a/chromeos/dbus/ibus/ibus_engine_service.cc
+++ b/chromeos/dbus/ibus/ibus_engine_service.cc
@@ -142,9 +142,9 @@ class IBusEngineServiceImpl : public IBusEngineService {
}
// IBusEngineService override.
- virtual void UnsetEngine() OVERRIDE {
- LOG_IF(ERROR, engine_handler_ == NULL) << "There is no engine.";
- engine_handler_ = NULL;
+ virtual void UnsetEngine(IBusEngineHandlerInterface* handler) OVERRIDE {
+ if (engine_handler_ == handler)
+ engine_handler_ = NULL;
}
// IBusEngineService override.
@@ -486,8 +486,9 @@ class IBusEngineServiceDaemonlessImpl : public IBusEngineService {
}
// IBusEngineService override.
- virtual void UnsetEngine() OVERRIDE {
- IBusBridge::Get()->SetEngineHandler(NULL);
+ virtual void UnsetEngine(IBusEngineHandlerInterface* handler) OVERRIDE {
+ if (IBusBridge::Get()->GetEngineHandler() == handler)
+ IBusBridge::Get()->SetEngineHandler(NULL);
}
// IBusEngineService override.

Powered by Google App Engine
This is Rietveld 408576698